|
|
|
|
公众号矩阵

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

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

作者: 崔艳飞 来源:Python爬虫与数据挖掘|2021-02-17 09:23

 一、前言

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

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

二、项目目标

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

三、项目准备

软件:PyCharm

需要的库:json, requests,etree

四、项目分析

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

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

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

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

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

3)如何保存搜索结果?

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

五、项目实现

1、第一步导入需要的库

  1. import json 
  2. import requests 
  3. from lxml import etree 

2、第二步用requests进行请求搜索

  1. headers = { 
  2.     "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36" 
  3. response = requests.get('https://www.baidu.com/s?wd=粮食&lm=1', headers=headers) 

3、第三步对获取的源代码进行整理分析,通过Xpath定位需要的资源

  1. r = response.text 
  2.    html = etree.HTML(r, etree.HTMLParser()) 
  3.    r1 = html.xpath('//h3'
  4.    r2 = html.xpath('//*[@class="c-abstract"]'
  5.    r3 = html.xpath('//*[@class="t"]/a/@href'

4、第四步把有用资源循环读取保存

  1. for i in range(10): 
  2.     r11 = r1[i].xpath('string(.)'
  3.     r22 = r2[i].xpath('string(.)'
  4.     r33 = r3[i] 
  5.     with open('ok.txt''a', encoding='utf-8'as c: 
  6.          c.write(json.dumps(r11,ensure_ascii=False) + '\n'
  7.          c.write(json.dumps(r22, ensure_ascii=False) + '\n'
  8.          c.write(json.dumps(r33, ensure_ascii=False) + '\n'
  9.     print(r11, end='\n'
  10.     print('------------------------'
  11.     print(r22, end='\n'
  12.     print(r33) 

六、效果展示

1、程序运行结果,如下图所示:

2、保存为txt的文件最终结果如下图所示:

七、总结

本文介绍了如何利用Python对百度搜索结果进行爬取、保存,是一个小爬虫,这也是Python好玩的地方,有大量免费的库可用,能帮你实现各种需求。工作量大,学会用Python!

本文转载自微信公众号「Python爬虫与数据挖掘」,可以通过以下二维码关注。转载本文请联系Python爬虫与数据挖掘公众号。

【编辑推荐】

  1. 深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!
  2. 为什么你总是学不会Python,入门Python的4大陷阱
  3. 跟着王进老师学开发之Python篇视频课程第四季:面向对象基础篇
  4. PyQt5(Python)开发与实战视频课程
  5. 一些你可能不知道的Python小技巧!
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

6人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

32人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

219人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微