用Python爬取百度搜索结果
一、前言
众所周知,百度上直接搜索关键字会出来一大堆东西,时常还会伴随有广告出现,不小心就点进去了,还得花时间退出来,有些费劲。
最近群里有个小伙伴提出一个需求,需要获取百度上关于粮食的相关讲话文章标题和链接。正好小编最近在学习爬虫,就想着拿这个需求来练练手。我们都知道,对Python来说,有大量可用的库,实现起来并不难,动手吧。
二、项目目标
爬取百度上关键字为“粮食”的搜索结果,并保存,提交给客户,用于进一步分析我国粮食政策。
三、项目准备
软件:PyCharm
需要的库:json,requests,etree
四、项目分析
1)如何进行关键词搜索?
利用response库,直接Get网址获得搜索结果。
2)如何获取标题和链接?
利用etree对原代码进行规范梳理后,通过Xpath定位到文章标题和href,获取标题和文章链接。
3)如何保存搜索结果?
新建txt文件,对搜索结果循环写入,保存即可。
五、项目实现
1、第一步导入需要的库
importjson
importrequests
fromlxmlimportetree
2、第二步用requests进行请求搜索
headers={
"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/88.0.4324.104Safari/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、第四步把有用资源循环读取保存
foriinrange(10):
r11=r1[i].xpath('string(.)')
r22=r2[i].xpath('string(.)')
r33=r3[i]
withopen('ok.txt','a',encoding='utf-8')asc:
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)
以上内容为大家介绍了用Python爬取百度搜索结果,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/
相关推荐HOT
更多>>为什么Python适合作为第一个学习的编程语言?
Python语言设计的初衷就是容易上手。作为一门基础语言,融会贯通后,有助于学习其他语言,例如PHP,Perl,Ruby等。可以快速架起抽象的程序世界...详情>>
2023-11-08 17:48:07Python 网络编程
python提供了两个级别访问的网络服务:低级别的网络服务支持基本的Socket,它提供了标准的BSDSocketsAPI,可以访问底层操作系统Socket接口的全...详情>>
2023-11-08 16:50:33pythonOrderedDict在python字典的实现
OrderedDict在python字典的实现1、OrderedDict的popitem方法这个类型在添加键的时候会保持顺序,因此键的迭代次序总是一致的。OrderedDict的pop...详情>>
2023-11-08 15:37:46python日志库的模块化方法
python日志库的模块化方法1、模块化方法日志库采用模块化方法,并提供几类组件:记录器(loggers),处理器(handlers),过滤器(filters)和格式化...详情>>
2023-11-08 14:45:39