开往未来的列车|Python爬虫快速入门,静态网页爬取
在开始之前 , 请确保你的电脑上已经安装好了BeautifulSoup库 , 可以通过在命令行中输入pip install beautifulsoup4来进行安装 。
一、数据解析在爬取之前 , 我们需要检测下响应状态码是否为200 , 如果请求失败 , 我们将爬取不到任何数据:
import requestsre = requests.get('')if re.status_code == 200:print('请求成功!')else:print('请求失败!响应状态码为{}'.format(re.status_code))
响应状态码为418 , 我们请求失败了 , 这是为什么呢?因为豆瓣有反爬虫机制 , 我们无法通过直接请求服务器来爬取数据 , 必须在发起请求之前将自己伪装起来 。
1.1 反爬虫反爬虫是网站限制爬虫的一种策略 。 它并不是禁止爬虫(完全禁止爬虫几乎不可能 , 也可能误伤正常用户) , 而是限制爬虫 , 让爬虫在网站可接受的范围内爬取数据 , 不至于导致网站瘫痪无法运行 。 常见的反爬虫方式有判别身份和IP限制两种 , 这里我们先介绍前者 , 后者稍后再提及 。
有些网站在识别出爬虫后 , 会拒绝爬虫进行访问 , 比如之前提到的豆瓣 。 那我们怎样做才能不被识别出来呢?在此之前 , 我们先尝试一下直接爬取:
import requestsre = requests.get('')print(re.text)
结果是什么都没有输出 , 因为豆瓣将我们的爬虫识别了出来并拒绝提供内容 。 你可能会有疑问 , 爬虫不是模拟浏览器访问网站、获取网页源代码的吗?为什么就被识别出来了呢?事实上 , 无论是浏览器还是爬虫 , 访问网站时都会带上一些信息用于身份识别 , 而这些信息都被存储在一个叫请求头(request headers)的地方 。
服务器会通过请求头里的信息来判别访问者的身份 。 请求头里的字段有很多 , 我们暂时只需了解user-agent(用户代理)即可 。 user-agent里包含了操作系统、浏览器类型、版本等信息 , 通过修改它我们就能成功地伪装成浏览器并爬取我们想要的数据 。
那么如何找到user-agent呢?操作步骤如下:
- 首先按F12(或Fn+F12) , 然后单击上方的Network标签 。
- 此时打开 , 在Name一列中找到top250并单击 。
- 在右边的Headers中找到Request Headers , User-Agent就在其中 。
我们只需定义一个字典(请求头字段作为键 , 字段内容作为值)传递给headers参数即可 , 方法如下:
import requestsheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}re = requests.get('', headers=headers)print(re.text)
这样就能正常输出内容了(结果太长这里不展示) 。 除了user-agent之外的其他请求头字段也能以同样的方式添加进去 , 但大部分情况下我们只需要添加user-agent字段即可 。 当我们加了user-agent字段还是无法获取到数据时 , 说明该网站还通过别的信息来验证身份 , 我们可以将请求头里的字段都添加进去再尝试 。1.2 BeautifulSoup 对象接下来我们将网页源代码解析成BeautifulSoup对象:
import requestsfrom bs4 import BeautifulSoupheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}re = requests.get('', headers=headers)soup = BeautifulSoup(re.text, 'html.parser')
- 金屋房市|未来房价会降多少?可能会跌到刚需兜里有多少钱的地步!你信吗?
- 韦少|未来到底是谁的?韦少哈登太难了,8年过去了詹姆斯怎么还这么强
- 新民晚报|注意了!未来两个双休日3号线这个区段将暂停运营
- 中国新闻网|服贸会商机:“网课”会成为教育行业的未来吗?
- 探索未来|40+女人穿玄色显老?是你不会搭配!看50岁富冈佳子这么穿多美
- 第一财经|免税概念利好消息频出,机构看好板块未来强劲增长丨牛熊眼
- 落叶知秋|中芯国际将被美国拉黑,鸿蒙系统已有进展,未来科技方向在何方?
- 开往未来的列车|3亿人曾用过,最让人感到不舍的腾讯产品,如今终被停服
- 大众报业·海报新闻|该校此前已有3位校友获此殊荣,山东大学教授彭实戈获未来科学大奖
- 瑞银集团|瑞银钱于军:未来中国资本市场进一步开放 很多外资会摩拳擦掌