• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python获取百度热榜链接的实例方法

python 搞代码 4年前 (2022-01-08) 14次浏览 已收录 0个评论

在本篇文章里小编给大家整理了关于python获取百度热榜链接的实例方法,需要的朋友们可以学习参考下。

目标网址:

 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.<span style="color:transparent">来源gaodai#ma#com搞*!代#%^码网</span>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?cl=3&tn=baidutop10&fr=top1000&wd={i}&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1'     print(link)

你会发现结果很长:

但其实关键字后面的几个参数是可以去掉的,这样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?wd=腾讯视频优惠&lm=1',headers=headers) r = response.text html = etree.HTML(r,etree.HTMLParser()) r1 = html.xpath('//h3') r2 = html.xpath('//*[@class="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()

以上就是python获取百度热榜链接的实例方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python获取百度热榜链接的实例方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址