As we all know,糗事百科有反爬机制,必须要模拟真实浏览
网址:糗事百科
也就是要用到cookie啊,user—agent之类的东东
requests 库可以完全模拟所有情况
这里只用最基础的get形式,这就够了
来来来,最小爬虫
from bs4 import BeautifulSoup
import requests
url = 'https://www.qiushibaike.com/text/'#糗事百科文字区第一页
headers = {#创建字典,存储自己浏览器上的信息,从而模拟浏览
'Cookie':'_xsrf=2|c2806390|1fe517b920b9fd6c9ebaa79f6473822e|1519272771; _qqq_uuid_="2|1:0|10:1519272771|10:_qqq_uuid_|56:YzQ5ZmFmOGNlNmYzZGU2MDE2NjQ4YWY5MTgwMTczNjA5MDZiMTc3Yg==|a3d26f5bab8a014ef0f92acc03cbb41a359e1784ba54de1df901b7f24a3916d8"',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKi'
't/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22'
'1 Safari/537.36 SE 2.X MetaSr 1.0'
}
wb_data = requests.get(url,headers = headers)#最简单也最常用的get方法获取网页,听说getpost就可以99%了
web = BeautifulSoup(wb_data.text,'lxml')#依然bs4解析一下,注意,一定要.text,获取内容,否则get到的只是一个状态码,200之类的
haha = web.select('div.content > span')#通过学习,还是这种方式获取位置简单粗暴
data = []
for i in haha:
data.append(i.get_text().strip())#.get_text()获取文本信息,.strip()可以去掉所有文本中的空格
num = 1
for i in data:
print(num,'.',i)
num+=1
结果