如何用Python编写示例代码抓取百度热榜的链接?

2026-05-16 20:172阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计580个文字,预计阅读时间需要3分钟。

如何用Python编写示例代码抓取百度热榜的链接?

目标网址:https://www.baidu.com要获取的内容:链接分析链接分析:从以下图中可以看出,只需要获取关键字,重新构建即可。

完整代码:pythonimport requestsimport pprintimport reimport urllib.parse

url='https://www.baidu.com'response=requests.get(url)_content=response.text

使用正则表达式提取链接links=re.findall(r'

打印提取到的链接pprint.pprint(links)

目标网址:

www.baidu.com/

要获取的内容:

链接分析:

从下图可以看出只需要获取关键字,再构建就可以了。

完整代码:

importrequests importpprint importre importurllib.parse url='www.baidu.com/' headers={ 'Host':'www.baidu.com', 'Referer':'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)) forhot_wordinkeyword: #汉字不符合url标准,所以这里需要进行url编码 i=urllib.parse.quote(hot_word,encoding='utf-8',errors='replace') #url构建 link=f'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 爬取简单的百度搜索结果

爬取百度搜索结果

如何用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('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获取百度热榜链接的实例方法的文章就介绍到这了,更多相关教你用python获取百度热榜链接内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计580个文字,预计阅读时间需要3分钟。

如何用Python编写示例代码抓取百度热榜的链接?

目标网址:https://www.baidu.com要获取的内容:链接分析链接分析:从以下图中可以看出,只需要获取关键字,重新构建即可。

完整代码:pythonimport requestsimport pprintimport reimport urllib.parse

url='https://www.baidu.com'response=requests.get(url)_content=response.text

使用正则表达式提取链接links=re.findall(r'

打印提取到的链接pprint.pprint(links)

目标网址:

www.baidu.com/

要获取的内容:

链接分析:

从下图可以看出只需要获取关键字,再构建就可以了。

完整代码:

importrequests importpprint importre importurllib.parse url='www.baidu.com/' headers={ 'Host':'www.baidu.com', 'Referer':'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)) forhot_wordinkeyword: #汉字不符合url标准,所以这里需要进行url编码 i=urllib.parse.quote(hot_word,encoding='utf-8',errors='replace') #url构建 link=f'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 爬取简单的百度搜索结果

爬取百度搜索结果

如何用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('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获取百度热榜链接的实例方法的文章就介绍到这了,更多相关教你用python获取百度热榜链接内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!