偶然看到了一些项目,有爬取糗事百科的,我去看了下,也没什么难的
首先,先去糗事百科的https://www.qiushibaike.com/text/看一下,
先检查一下网页代码,
就会发现,需要爬取的笑话内容在一个span标签里,而且父标签是class为content的div里,那就很简单了,用select方法,先找到该文件,然获取下来并保存在txt文件里。比较枯燥。
直接贴代码吧
from bs4 import BeautifulSoup import lxml import requests #url = 'https://www.qiushibaike.com/text/' def spyder(url): try: print(url) #模拟浏览器 kv = {'user-agent':'Mozilla/5.0'} r = requests.get(url , headers = kv) #状态码检查,用于 r.raise_for_status() #print(r.text) r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text,'lxml') s = soup.select("div.content>span") data = open(r"qiushi.txt","w", encoding="utf-8") txt = "hello" for i in range(25): txt = s[i].text print(txt) data.write(txt) data.close() except: ("爬取失败") def main(): for i in range(13): url = 'https://www.qiushibaike.com/text/page/' url=url+str(i+1) #print(url) spyder(url) main()4
这段代码能直接爬取13页的内容,不过在保存的时候有个小毛病,只能保存最后的代码,我也懒得去管了,毕竟实现功能了嘛,如果有兴趣可以稍加改动。
在main里,我用了字符串拼接,主要是观察了下他的url的规律,也就避免了“自动翻页”