获取网页源码是爬虫项目的最主要和最关键的步骤,我这里介绍如何利用 Python 的 Requests 库获取知乎热榜页面的源码。(不过该网站需要登录,这里我们只是模拟浏览器登录,其实获取的是登录界面的源码。模拟登录,源码会在之后进行介绍,循序渐进。)

打开知乎热榜,直接复制浏览器地址栏的网址。

将网址放入如下代码:

import requests

url = '这是网址' # 百家号不允许出现网址,大家知道是个网址就好
res = requests.get(url).text
print(res)

返回的结果如下:

很显然,我们并没有拿到真正的网页源码,因为按道理源码中应该含有热榜中的相关新闻的信息。这是因为知乎网址在查看这些信息的时候都是得预先登录的,在浏览器登录情况下发送的访问请求才会被该网站所认可并返回内容,而 Python 的请求却不被该网站所认可。

面对这种问题,就需要设置 request.get() 的 headers 参数,用来模拟浏览器进行访问。headers 参数是一个包含访问者信息的字典,键名为 User-Agent浏览器代理,键值反映了访问者使用的是那种浏览器。

User-Agent值获取方式1:在浏览器地址栏输入edge://version/(Microsoft Edge浏览器);about:version(谷歌浏览器)...可以查看浏览器的用户代理的参数值。

User-Agent值获取方式2:打开开发者工具(或者右键选择“检查”),接着选择网络(英文标签:network),刷新页面,随便点击一个加载内容,在右侧框中向下滑找到 User-Agent,选中右键复制。

将浏览器代理参数值按如下代码使用:

import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55'}

url = '这是网址'
res = requests.get(url,headers=headers).text
print(res)

即可获得网页(登录页)的源码。为了爬取顺利,一般都会把 header 参数加上。之后就是根据获得的源码进行分析提取存储有用的信息。

举报/反馈

Lins号丹

3977获赞 2589粉丝
喜欢爬山的运筹算法工程狮,CSDN同号,欢迎关注~
科技领域创作者
关注
0
0
收藏
分享