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

(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.baidu.com/',    

  • Python获取百度热搜的完整代码

    好久没写了,就把上课做的一个小东西拿出来分享一下吧. 百度网页截图如下 ↓↓↓ 程序运行输出结果截图 ↓↓↓ 上代码 ↓↓↓ from lxml import etree from lxml import html import requests headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36'}

  • python爬虫今日热榜数据到txt文件的源码

    今日热榜:https://tophub.today/ 爬取数据及保存格式: 爬取后保存为.txt文件: 部分内容: 源码及注释: import requests from bs4 import BeautifulSoup def download_page(url): headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko

  • python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控,分析和限制系统资源及进程的管理.它实现了同等命令行工具提供的功能,如ps.top.lsof.netstat.ifconfig.who.df.kill.free.nice.ionice.iostat.iotop.uptime.pidof.tty.taskset.pmap等.目前支持32位和64位的Li

  • 如何使用python爬取知乎热榜Top50数据

    目录 1.导入第三方库 2.程序的主函数 3.正则表达式匹配数据 4.程序运行结果 5.程序源代码 1.导入第三方库 import urllib.request,urllib.error #请求网页 from bs4 import BeautifulSoup # 解析数据 import sqlite3 # 导入数据库 import re # 正则表达式 import time # 获取当前时间 2.程序的主函数 def main(): # 声明爬取网页 baseurl = "https://ww

  • Python异步爬取知乎热榜实例分享

    目录 一.错误代码:摘要和详细的url获取不到 二.查看JS代码 一.错误代码:摘要和详细的url获取不到 import asyncio from bs4 import BeautifulSoup import aiohttp   headers={     'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safa

  • python通过百度地图API获取某地址的经纬度详解

    前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图API获取某地址的经纬度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 申请百度API 1.打开网页 http://lbsyun.baidu.com/index.php?title=首页 选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号

  • Python 一键获取百度网盘提取码的方法

    该 GIF 图来自于官网,文末有给出链接. 描述 依托于百度网盘巨大的的云存储空间,绝大数人会习惯性的将一些资料什么的存储到上面,但是有的私密链接需要提取码,但是让每个想下载私密资源的人记住每一个提取码显然是不现实的.这个时候,云盘万能钥匙 诞生了,我们通过安装相应的浏览器插件就可以自动获获取相应链接的提取码.我在 Github 上看了一下,有 Web JS 版的, python 版的貌似还没有找到,所以我参照了JS 版本和官网的请求接口写了两种方式的获取脚本. 实现 下述两种方式的具体实现就不

  • python采集百度搜索结果带有特定URL的链接代码实例

    这篇文章主要介绍了python采集百度搜索结果带有特定URL的链接代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #coding utf-8 import requests from bs4 import BeautifulSoup as bs import re from Queue import Queue import threading from argparse import ArgumentParser arg = Argu

  • Redis实战之百度首页新闻热榜的实现代码

    目标 利用Redis实现类似百度首页新闻热榜功能. 功能 新闻排行榜以热度为指标降序排序,这里假设热度就是评论数量且统计的热度时间范围以当天为准:根据新闻的时效性,这里假设每15分钟刷新一次新闻榜单. 分析 Zset数据类型:一个有序集合最多 个元素,集合元素有序不可重复,每个元素都会关联一个double类型的分数.元素根据分数从小到大的排序,分数可以重复.zscore命令可以对分数实现增量,且如果该Zset中没有该元素,则会创建该条数据.可以将模块名+当天的时间作为Zset的键,用户评论量作为

随机推荐