首页 文章详情

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

Python绿色通道 | 466 2021-02-22 01:57 0 0 0
UniSMS (合一短信)

↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包


一、前言

大家好,我是崔艳飞。众所周知,百度上直接搜索关键字会出来一大堆东西,时常还会伴随有广告出现,不小心就点进去了,还得花时间退出来,有些费劲。

最近群里有个小伙伴提出一个需求,需要获取百度上关于粮食的相关讲话文章标题和链接。正好小编最近在学习爬虫,就想着拿这个需求来练练手。我们都知道,对Python来说,有大量可用的库,实现起来并不难,动手吧。


二、项目目标

爬取百度上关键字为“粮食”的搜索结果,并保存,提交给客户,用于进一步分析我国粮食政策。


三、项目准备

软件:PyCharm

需要的库:json, requests,etree


四、项目分析

1)如何进行关键词搜索?

利用response库,直接Get网址获得搜索结果。网址如下:

https://www.baidu.com/s?wd=粮食

2)如何获取标题和链接?

利用etree对原代码进行规范梳理后,通过Xpath定位到文章标题和href,获取标题和文章链接。

3)如何保存搜索结果?

新建txt文件,对搜索结果循环写入,保存即可。


五、项目实现

1、第一步导入需要的库

import jsonimport requestsfrom lxml import etree

2、第二步用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!


获取源码

最后需要本文项目代码的小伙伴,请在点击下方名片后台回复“粮食”关键字进行获取,如果在运行过程中有遇到任何问题,请随时留言或者加小编好友,小编看到会帮助大家解决bug噢!


点击上方名片,关注后回复「粮食」获取源码


------------------- End -------------------


最近很多小伙伴找我要一些 MySQL基础资料,于是我翻箱倒柜,把这份阿里大牛总结的 MySQL 归纳笔记找出来,免费共享给大家!

据说有小伙伴靠这份笔记顺利进入 BAT 哦,所以一定要好好学习这份资料!

资料介绍

这份资料非常全面且详细,覆盖了 MySQL 基础学习的方方面面,非常适合初学者入门!

资料也按目录进行编排,每一章下面都有更具体的内容:

而且,这份资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:


如何获取?

1. 识别并关注下方公众号、;
2. 在下面公众号后台回复关键字「
MySQL笔记」。

点击上方名片,回复「MySQL笔记」即可获取资料


精彩推荐


  1. 再见!马赛克

  2. 程序员大佬的简历和我们有啥区别?

  3. 手把手教你用Python进行SSH暴力破解

  4. 一个中科大差生的 8年 程序员工作总结

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter