在学爬虫之前, 最好有一些html基础, 才能更好的分析网页.
主要是五步:
1. 获取链接
2. 正则匹配
3. 获取内容
4. 处理内容
5. 写入文件
代码如下:
#导入相关model
from bs4 import BeautifulSoup
import requests
import re
#获取目标链接地址
url = 'http://www.biquyun.com/0_292/'
reponse = requests.get(url)
reponse.encoding = 'gbk' #设置编码方式,可在网页源码头部查到
html = reponse.text
#获取各章节链接和标题
#审查元素, 找到小说章节的代码位置, 找出其对应的标签, 进行正则匹配
dl = re.findall(r'(.*?)', html, re.S) #返回list类型
j=0 #计数, 只获取前30章, 多了结果要很久才出来
#进行章节内容获取
for chapter in dl:
if j >= 30:
break
#获取章节链接,名字.等价于c_link=chapter[0]; c_title=chapter[1]
chapter_link, chapter_title = chapter
#补全链接,因为之前获取的只是链接的尾部
chapter_link = "http://www.biquyun.com%s" % chapter_link
#仿照之前的再写一遍
chapter_reponse = requests.get(chapter_link)
chapter_reponse.encoding='gbk'
chtml = chapter_reponse.text
#找到小说章节正文所在标签
chapter_content = re.findall(r'(.*?)', chtml,re.S)
#将它们转换为字符串,因为list无法进行replace操作
t = str(chapter_title)
s = str(chapter_content)
#替代好空格,换行, 以及列表的左右中括号
s = s.replace(' ','').replace('
',"\n").replace('\\r\\n','')
s = s.replace(']',"\n").replace('[',' ').replace
#新建txt文件,并将其名字设置为章节名, 写入
f = open('E:/temp/zhuxian/%s.txt' % chapter_title, 'w')
f.write(t)
f.write('\n')
f.write(s)
j = j+1
print('ok')
f.close()
''' s = s.replace('[','')
s = s.replace('
',"\n")
s = s.replace('\\r\\n','')'''