(编辑:jimmy 日期: 2024/11/17 浏览:2)
目标网址:
https://www.baidu.com/
要获取的内容:
链接分析:
从下图可以看出只需要获取关键字,再构建就可以了。
完整代码:
import requests import pprint import re import urllib.parse url = 'https://www.baidu.com/' headers = { 'Host': 'www.baidu.com', 'Referer': 'https://www.baidu.com/', 'User-Agent': 你的User-Agent, 'Cookie': 你的Cookie } response = requests.get(url, headers=headers).content.decode('utf-8') # 获取关键字 pat = '"pure_title": "(.*"' keyword = re.findall(pat, response, re.S) print(len(keyword)) for hot_word in keyword: # 汉字不符合url标准,所以这里需要进行url编码 i = urllib.parse.quote(hot_word, encoding='utf-8', errors='replace') # url构建 link = f'https://www.baidu.com/s"1598259198416508.png" alt="5a4ab5594dcdd44ecffd034fa2af3af.png" src="/UploadFiles/2021-04-08/202008250749554.png">但其实关键字后面的几个参数是可以去掉的,这样url就没有那么长了。
内容扩展:
python 爬取简单的百度搜索结果
爬取百度搜索结果
主要还要借助xpath helper谷歌浏览器的插件来操作更容易找到需要查找信息的xpath位置
还要首先了解一下百度搜索请求的参数 lm默认为0,天数限制,但是好像只有1有用。
默认每页10条信息,rn
pn是页码
from lxml import etree import re import requests import string import json headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" } response = requests.get('https://www.baidu.com/s"c-abstract"]') r3 = html.xpath('//a[@class="c-showurl"]') for i in range(10) : r11 = r1[i].xpath('string(.)') r22 = r2[i].xpath('string(.)') r33 = r3[i].xpath('string(.)') # with open('test.txt', 'a', encoding='utf-8') as f: # f.write(json.dumps(r11,ensure_ascii=False) + '\n') # f.write(json.dumps(r22, ensure_ascii=False) + '\n') # f.write(json.dumps(r33, ensure_ascii=False) + '\n') print(r11,end='\n') print(r22,end='\n') print(r33) print()