import urllib.requestimport redef getHtml(url): page = urllib.request.urlopen(url) html = page.read() return htmldef getTxt(html): html_txt = str(html, encoding="utf-8") start = html_txt.find("<h1>") + 4 end = html_txt.find('</h1>') txt = html_txt[start:end]+"/n" start = html_txt.find('<div id="content">') + 25 end = html_txt.find('<script>chaptererror();</script>') txt += html_txt[start:end] return txtdef dealTxt(txt): strinfo = re.compile(' ') txt = strinfo.sub('', txt) strinfo = re.compile(' ') txt = strinfo.sub(' ', txt) strinfo = re.compile('<br.{0,1}>') txt = strinfo.sub('/n', txt) return txtdef writeFile(txt,name): html_file = open("./res/"+name+".txt", "a") html_file.write(txt) html_file.close()def getNextURL(html): str_init_url = str(re.search("pager_next.{0,20}(/d+//.html).", str(html)).group()) str_sub_url = str(re.search("(/d+//.html)", str_init_url).group()) return "http://www.biqulou.net/24/24835/"+str_sub_urlurl = "http://www.biqulou.net/24/24835/7406090.html"count = 0while bool(url): html = getHtml(url) txt = getTxt(html) deal_txt = dealTxt(txt) try: writeFile(deal_txt,"大主宰") count += 1 except ValueError: writeFile("获取章节失败/n", "大主宰") url = getNextURL(html) PRint(count)这是用python 3.4写的一个扒取大主宰的一个小项目
最近在看python 3,没学过python2.x照着网上的一些关于python2.x写的关于一些关于网络爬虫的代码(http://www.VEVb.com/fnng/p/3576154.html)写了这个扒取笔趣阁上大主宰的代码
但是我却觉得不是很好,也请各路大神指教
下面我先说在此过程中遇到的一些问题
1、我不是很了解什么事网络爬虫,也不知道如何筛选有用的URL,所以写的代码很僵硬,没有很好的移植性
2、在扒取正文正文时遇到过一个问题,遇到一些非法字符不能读取
希望以后的学习中能改善这些题
新闻热点
疑难解答