当前位置: 首页 > 科技观察

教你用Python爬取百度搜索结果并保存

时间:2023-03-18 17:08:40 科技观察

1.前言众所周知,直接在百度上搜索关键词会出现很多东西,而且往往伴随着广告。如果你不小心点进去了,你得花点时间退出,有点费劲。最近群里有小伙伴提出需要获取百度美食相关演讲和文章的标题和链接。正好小编最近在学习爬虫,所以想利用这个需求来练练手。我们都知道对于Python来说,有大量的库可供使用,实现起来也不难,那就动手吧。2、项目目标抓取百度上“粮食”关键词的搜索结果,保存,提交给客户端,用于进一步分析我国粮食政策。3、项目准备软件:PyCharm需要的库:json、requests、etree4、项目分析1)如何搜索关键词?使用响应库直接从URL中获取搜索结果。网址如下:https://www.baidu.com/s?wd=粮食2)如何获取标题和链接?将原代码用etree规范后,通过Xpath定位到文章的标题和href,得到文章的标题和链接。3)如何保存搜索结果?新建一个txt文件,循环写入搜索结果,保存。五、项目实现1.第一步导入需要的库importjsonimportrequestsfromlxmlimportetree2.第二步使用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=food&lm=1',headers=headers)3.第三步就是获取整理分析源码,通过Xpathr=response.texthtml=etree.HTML(r,etree.HTMLParser())r1=html.xpath('//h3')r2=html定位到需要的资源。xpath('//*[@class="c-abstract"]')r3=html.xpath('//*[@class="t"]/a/@href')4.第四步是循环读取有用资源saveforiinrange(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)6.效果展示1.结果程序运行流程,如下图所示:2.另存为txt文件的最终结果如下图所示:7.总结本文介绍如何使用Python对百度搜索结果进行爬取和保存。它是一种小型爬虫。也是Python好玩的地方。有大量的免费图书馆可供使用,可以帮助您满足各种需求。工作量大,还是学用Python吧!.转载本文请联系Python爬虫与数据挖掘公众号。