关键字采集文章(工作量大,学会用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吧!

  最后,如果您需要本文的项目代码,请在公众号后台回复“粮”关键字获取。如果您在操作过程中遇到任何问题,请随时给小编留言或加好友。当你看到它时,编辑器会帮助你。修复错误!

  - - - - - - - - - - 结尾 - - - - - - - - - -

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线