ITPub博客

首页 > IT职业 > IT职场 > 如何使用Python对百度搜索结果进行抓取和保存

如何使用Python对百度搜索结果进行抓取和保存

IT职场 作者:dzone 时间:2021-09-11 09:59:35 0 删除 编辑

众所周知,直接在百度上搜索关键词,很多东西都会出来,广告也会经常出现。如果不小心点进去,就要花时间退出,有些费力。那如何需要在百度上获得关于食物的相关言论文章的标题和链接该如何操作呢。其实很简单,对于Python来说,有大量可用的库,实现起来并不困难。

1、导入库

import json
import requests
from 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)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3703/viewspace-2830681/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-30

  • 博文量
    76
  • 访问量
    534