python网页数据抓取(爬取《斗破苍穹》全文小说网络链接:)
优采云 发布时间: 2021-09-14 11:16python网页数据抓取(爬取《斗破苍穹》全文小说网络链接:)
在python爬取数据的过程中,当你使用上面介绍的三大库进行正则爬取时,有时不方便处理路径,可以使用简单的正则表达式来描述路径。抢。
说到正则表达式,大家往往会觉得很复杂,因为正则表达式是一组特殊的符号,用来帮助开发者检查一个字符串是否与某个模式匹配。其实,当你弄清楚如何匹配字符时,还是很简单的,然后使用re模块完成数据获取。
1、正则表达式基础
(1)一般字符
(2)预定义字符集
(3)quantity word
(4)边界匹配
注意:最常用的匹配方式(.*?)表示匹配任意字符
2、re 模块使用方法
re 模块使 Python 拥有所有正则表达式功能。
常用函数1:search()函数匹配提取第一个符合规律的内容,并返回一个正则表达式对象
常用函数2:findall()函数匹配所有符合规律的内容并以列表的形式返回结果
备注:一般在爬取数据的时候用的最多的是findall。
重新模块修饰符
3、案例实践
案例名称:爬取《斗破苍穹》全文小说
网络链接:/doupocangqiong/
抓取想法:
打开网页,了解网页的网址信息。打开第一、二章,链接如下
/doupocangqiong/1.html
/doupocangqiong/2.html
/doupocangqiong/3.html
明显的链接通过添加数字对每一章进行分页。
爬取全文信息,找到对应位置如下
数据存储在 TXT 文本中
4、详细代码如下:
导入请求
重新导入
导入时间
标题={
"User-Agent":请求头}
f=open('doupo.txt','a+')
def get_info(url):
res=requests.get(url,headers=headers)
如果 res.status_code==200:
contents = re.findall('
(.*?)
',res.content.decode('utf-8'),re.S)
对于内容中的内容:
f.write(content+'\n')
打印(内容)
其他:
通过
如果 __name__=='__main__':
urls=['/doupocangqiong/{}.html'.format(i) for i in range(2,10)]
对于网址中的网址:
get_info(url)
time.sleep(1)
f.close()
运行结果如下:
好的,正则化的使用就是这么简单。当遇到路径困难时,不妨试试正则化来获取数据。非常高效方便!