2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 实例3:爬取斗破苍穹小说全文

实例3:爬取斗破苍穹小说全文

时间:2023-02-16 02:07:02

相关推荐

实例3:爬取斗破苍穹小说全文

呜呼~回到家的感觉真的不一样,下了广州站空气就清新了一番。。回到家就是熟悉而又陌生的感觉。

这次的实例是爬取斗破苍穹小说网的斗破苍穹小说全文。首先要找的是原网站,不是百度到的最前面的。因为正版的蜘蛛协议也写得很清楚了。。而且里面的文本内容被藏起来了。无能为力,只能爬别的网啦哈哈。

思路 通常思路1. requests + Beautiful 2. requests + re

这里我们比较一下这两种方法,首先使用requests + re 路线

如图

要提取的信息都在p标签里面,

所以re.findall用正则表达式去匹配p标签吗?

下图

下面还有一个p标签呢。。所以findall的话会多出一个句子。

同实例2一样,我们使用select就可以了,经过全文的搜索发现<div class=articlecon 》这个标签是唯一存在的,唯一存在那就soup.select()完事了。

from bs4 import BeautifulSoupimport requestsimport timekey_value = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}def get_html(url):try:web_data = requests.get(url,headers = key_value)web_data.raise_for_status()web_data.encoding = web_data.apparent_encodingreturn web_data.textexcept:return Nonefile = open('D:/doupoxiaoshuo.txt','a+',encoding='UTF-8')def write_file(html):soup = BeautifulSoup(html,'lxml')texts = soup.select('div.articlecon > p')for text in texts:real_text = text.get_text()file.write(real_text+'\n')if __name__ == '__main__':part_url = '/1/t'for i in range(20,1677):real_url = part_url + str(i) + '.html'html = get_html(real_url)write_file(html)time.sleep(0.5)file.close()

爬取过程十分之久。。

Result!!!

热爱生活,而爱编程

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。