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

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

众所周知,直接在百度上搜索关键词,很多东西都会出来,广告也会经常出现。如果不小心点进去,就要花时间退出,有些费力。那如何需要在百度上获得关于食物的相关言论文章的标题和链接该如何操作呢。其实很简单,对于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')
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)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注