python 网络爬虫抓取百度搜索结果链接

版本:python3

要搜索的关键字我们可以作为一个参数传入,这里随便举一个作为例子
用urllib请求网页

from urllib import request 
#相当于在百度搜索关键字 battle
battle ='https://www.baidu.com/s?wd=battle'
req = request.Request(battle)

直接请求无法打开网页,增加header,伪装成浏览器访问。
打开浏览器,打开百度搜索,搜索关键字battle;
打开浏览器检查,Network,刷新一遍页面
在header栏目下翻找到User-Agent项:
python 网络爬虫抓取百度搜索结果链接_第1张图片
复制User-Agent后的内容到代码中,

req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36')
response = request.urlopen(req)
content = response.read().decode('utf-8')
print(content)

用urlopen打开后,打印内容,
python 网络爬虫抓取百度搜索结果链接_第2张图片
通过进度条也可以看出得到我们想要的html源码了。

接下来用beautifulsoup提取出我们想找的元素,就是每个搜索结果的URL。先把得到的内容传入beautifulsoup,

import bs4
soup = bs4.BeautifulSoup(content)

然后得找出URL所在的位置,
在浏览器中检查元素,找到链接放在在h3元素下的a元素里:
python 网络爬虫抓取百度搜索结果链接_第3张图片
那就可以用BeautifulSoup的元素选择模块筛出我们要的这部分内容,保存为一个列表

linkElems = soup.select('h3 > a')

接着打印出来检查一下成果:

for i in range(10):
    print(linkElems[i].get('href'))

python 网络爬虫抓取百度搜索结果链接_第4张图片

你可能感兴趣的:(python 网络爬虫抓取百度搜索结果链接)