import urllib.request
import re
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
return html
def 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 txt
def 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 txt
def 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_url
url = "http://www.biqulou.net/24/24835/7406090.html"
count = 0
while 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.cnblogs.com/fnng/p/3576154.html)写了这个扒取笔趣阁上大主宰的代码
但是我却觉得不是很好,也请各路大神指教
下面我先说在此过程中遇到的一些问题
1、我不是很了解什么事网络爬虫,也不知道如何筛选有用的URL,所以写的代码很僵硬,没有很好的移植性
2、在扒取正文正文时遇到过一个问题,遇到一些非法字符不能读取
希望以后的学习中能改善这些题