requests-html模块介绍以及静态爬取
本帖最后由 wcq15759797758 于 2021-6-26 14:43 编辑一.介绍
Python上有一个非常著名的HTTP库——requests,相信大家都听说过,用过的人都说非常爽!现在requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜出来,这是一个解析HTML的库,具备requests的功能以外,还新增了一些更加强大的功能,用起来比requests更爽!接下来我们来介绍一下它吧。
官网告诉我们,它比原来的requests模块更加强大,并且为我们提供了一些新的功能!
支持JavaScript
支持CSS选择器
支持Xpath选择器
可自定义模拟User-Agent(模拟得更像真正的web浏览器)
自动追踪重定向
连接池与cookie持久化
支持异步请求
二.安装
安装requests-html非常简单,一行命令即可做到。需要注意一点就是,requests-html只支持Python 3.6或以上的版本,所以使用老版本的Python的同学需要更新一下Python版本了。
打开cmd 输入以下代码
pip install requests-html
三.请求代码例子
from requests_html import HTMLSession
session = HTMLSession()
ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400'}
data = {'user':'admin','password':'123456'}
url = 'http://httpbin.org/post'
response = session.post(url=url,headers=ua,data=data)
if response.status_code ==200:
print(response.text)
四.静态抓取哦
抓取中国青年网板块中的即时新闻
网址为:http://news.youth.cn/jsxw/
import requests,json
from requests_html import HTMLSession
session = HTMLSession() # 创建HTML会话对象
ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400'}
url = 'http://news.youth.cn/jsxw//'
response = session.get(url=url,headers=ua)
response.encoding='gb2312' #编码格式
if response.status_code == 200: # 判断请求是否成功
# 获取所有class=tj3_1中的li标签
li_all = response.html.xpath('.//ul[@class="tj3_1"]/li')
for li in li_all: # 循环遍历每个li标签
news_title = li.find('a').text# 提取新闻标题内容
# 获取新闻详情对应的地址
news_href = 'http://news.youth.cn/jsxw'+\
li.find('a').attrs.get('href').lstrip('.') #lstrip的作用是 方法用于截掉字符串左边的空格或指定字符
news_time = li.find('font').text # 获取新闻发布的时间
print('新闻标题为:',news_title) # 打印新闻标题
print('新闻url地址为:',news_href) # 打印新闻url地址
print('新闻发布时间为:',news_time)# 打印新闻发布时间
提取数据的方式有很多种 本人一般用的是 xpath css
学习到了 私はり 发表于 2021-6-26 15:16
学习到了
{:10_254:} {:5_95:} 漂亮! peak6009 发表于 2021-6-26 16:21
漂亮!
注释很到位! 可以 {:10_260:}{:10_261:} {:10_261:} {:5_95:} {:5_92:}学习了 {:10_254:} 好 {:9_227:}学习了
{:7_131:}
页:
[1]