关键字采集文章(工作量大,学会用Python对百度搜索结果进行爬取、保存)
优采云 发布时间: 2022-03-14 22:24关键字采集文章(工作量大,学会用Python对百度搜索结果进行爬取、保存)
一、前言
大家好,我叫崔燕飞。众所周知,直接在百度上搜索关键词会弹出很多东西,往往伴随着广告。如果不小心点击了,就得花时间退出,有点费力。
近日,群里小伙伴提出请求,获取百度上关于美食的相关演讲文章的标题和链接。正好小编最近在学爬虫,就想着用这个需求来练手。我们都知道 Python 有很多可用的库,而且实现起来并不难,让我们来做吧。
二、项目目标
用关键字“粮食”在百度上抓取搜索结果,保存后提交给客户,供客户进一步分析我国粮食政策。
三、项目准备
软件:PyCharm
所需库:json、requests、etree
四、项目分析1)如何进行关键词搜索?
使用响应库直接从 Get URL 获取搜索结果。网址如下:
https://www.baidu.com/s?wd=粮食
2)如何获得标题和链接?
使用etree对原代码进行标准化后,通过Xpath定位文章标题和href,获取标题和文章链接。
3)如何保存搜索结果?
新建一个txt文件,循环写入搜索结果,保存。
五、项目实现1、第一步,导入需要的库
import json
import requests
from lxml import etree
2、第二步,使用requests搜索requests
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"
}
response = requests.get('https://www.baidu.com/s?wd=粮食&lm=1', headers=headers)
3、第三步,整理分析得到的源码,通过Xpath定位到需要的资源
r = response.text
html = etree.HTML(r, etree.HTMLParser())
r1 = html.xpath('//h3')
r2 = html.xpath('//*[@class="c-abstract"]')
r3 = html.xpath('//*[@class="t"]/a/@href')
4、第四步,循环读取并保存有用资源
for i in range(10):
r11 = r1[i].xpath('string(.)')
r22 = r2[i].xpath('string(.)')
r33 = r3[i]
with open('ok.txt', 'a', encoding='utf-8') as c:
c.write(json.dumps(r11,ensure_ascii=False) + '\n')
c.write(json.dumps(r22, ensure_ascii=False) + '\n')
c.write(json.dumps(r33, ensure_ascii=False) + '\n')
print(r11, end='\n')
print('------------------------')
print(r22, end='\n')
print(r33)
六、效果展示
1、程序运行结果如下图所示:
2、文件保存为txt的最终结果如下图所示:
七、总结
本文介绍如何使用 Python 抓取并保存百度搜索结果。它是一个小型爬虫。这也是 Python 的有趣之处。有很多免费的库可用,可以帮助您实现各种需求。辛苦了,学用Python吧!
最后,如果您需要本文的项目代码,请在公众号后台回复“粮”关键字获取。如果您在操作过程中遇到任何问题,请随时给小编留言或加好友。当你看到它时,编辑器会帮助你。修复错误!
- - - - - - - - - - 结尾 - - - - - - - - - -