当前位置: 首页 > news >正文

网站统计怎么做域名的申请注册

网站统计怎么做,域名的申请注册,最新军事新闻头条,微信怎么制作自己的公众号一、库简介 Requests-HTML是Python中集网络请求与HTML解析于一体的全能型库,由知名开发者Kenneth Reitz团队维护。它完美结合了Requests的易用性和Parsel的选择器功能,并内置JavaScript渲染引擎,特别适合现代动态网页抓取。最新版本&#xf…

一、库简介

Requests-HTML是Python中集网络请求与HTML解析于一体的全能型库,由知名开发者Kenneth Reitz团队维护。它完美结合了Requests的易用性和Parsel的选择器功能,并内置JavaScript渲染引擎,特别适合现代动态网页抓取。最新版本(v0.10.0)已全面兼容Python 3.6+环境。

二、核心功能详解

1. 环境准备

# 终端安装
pip install requests-html# 基础导入
from requests_html import HTMLSession

2. 基础网络请求

# 创建会话对象(推荐方式)
session = HTMLSession()# GET请求示例
response = session.get('https://example.com')# POST请求示例
data = {'key': 'value'}
response = session.post('https://httpbin.org/post', data=data)

3. HTML解析三板斧

# 原始HTML查看
print(response.html.raw_html)# CSS选择器(支持嵌套查询)
articles = response.html.find('div.article', first=True)# XPath表达式
titles = response.html.xpath('//h2/text()')

4. 动态页面处理

# 强制渲染JavaScript(自动执行JS)
response.html.render()  # 需安装pyppeteer# 异步渲染(提升性能)
async def get_dynamic_content():r = await session.get('https://dynamic-site.com')await r.html.arender()

5. 表单与文件操作

# 文件上传示例
with open('file.txt', 'rb') as f:files = {'upload_file': f}response = session.post('https://upload.com', files=files)# 表单提交(含验证码处理)
form = response.html.find('form#login', first=True)
form_data = {'username': 'admin','password': '123456','captcha': 'abcd'  # 需配合OCR处理
}
response = session.post(form.attrs['action'], data=form_data)

三、高级特性

1. 智能编码检测

# 自动识别网页编码
response.encoding = response.apparent_encoding# 手动设置编码(日文页面示例)
response.encoding = 'euc-jp'

2. 连接池优化

# 创建带连接池的会话
from requests.adapters import HTTPAdapteradapter = HTTPAdapter(pool_connections=10, pool_maxsize=100)
session = HTMLSession()
session.mount('https://', adapter)

3. 异常处理机制

try:response = session.get('https://flaky-site.com', timeout=5)response.raise_for_status()
except requests.exceptions.HTTPError as err:print(f"HTTP错误: {err}")
except requests.exceptions.ConnectionError:print("连接失败,正在重试...")

四、实战案例:豆瓣电影数据抓取

from requests_html import HTMLSessionsession = HTMLSession()def scrape_douban(url):try:r = session.get(url)r.html.render()  # 执行JS渲染movies = []for item in r.html.find('.item'):title = item.find('.title', first=True).textrating = item.find('.rating_num', first=True).textmovies.append({'title': title,'rating': float(rating)})return moviesexcept Exception as e:print(f"抓取失败: {str(e)}")return []# 执行抓取
data = scrape_douban('https://movie.douban.com/top250')
print(f"成功获取{len(data)}条电影数据")

五、性能优化建议

  1. 持久化会话:复用Session对象减少TCP连接开销
  2. 并发控制:使用asyncio实现异步请求(示例见附录)
  3. 缓存策略:对静态资源启用本地缓存
  4. 代理旋转:配合住宅IP代理应对反爬

六、常见问题解决

Q1: 渲染时出现pyppeteer错误
A: 确保已安装浏览器依赖:

pip install pyppeteer
python -m pyppeteer_installer

Q2: 如何处理验证码?
A: 推荐方案:

  1. 使用OCR库(如tesseract)识别简单验证码
  2. 接入第三方打码平台(推荐超级鹰)
  3. 复杂场景建议使用Selenium模拟浏览器

Q3: 遇到TooManyRedirects错误
A: 修改请求参数:

response = session.get(url, allow_redirects=False)

七、版本更新亮点(v0.10.0)

  1. 新增WebAssembly支持
  2. 优化移动端UserAgent池
  3. 增强CSS选择器性能(提升40%)
  4. 修复已知内存泄漏问题

八、学习资源推荐

  1. 官方文档
  2. 动态网页抓取实战
  3. 反爬虫对抗指南

通过本文的系统学习,您将掌握从基础请求到动态页面处理的完整技能链。实际开发中建议结合具体场景调整参数,并遵守目标网站的robots.txt协议。

http://www.dtcms.com/a/458803.html

相关文章:

  • 做网站专用素材wordpress里文章图片无法显示
  • 基于51单片机的室内烟雾温度与人体监测报警系统设计
  • 青岛网站建设培训学校wordpress手机字体变大6
  • 哈尔滨高端品牌网站建设建筑模板质量标准
  • 做订单管理网站用什么软件郑州网站制作方案
  • 百度网站推广申请Wordpress ajax 相册
  • 苏州建设网站的公司做网站分期付款比例
  • 购物网站页面桂林网站seo
  • 义乌网站建设推广网站建设方案流程
  • 企业网站的建设目的包含什么wordpress 获取页面
  • 做网站商机网络设计的安全性原则主要是指
  • 电商网站设计趋势千库网ppt
  • 网站设计可以用性原则怎么做义工网站
  • 山东省城乡和住房建设厅网站wordpress二级目录创建
  • intellij idea做网站wordpress文章顶置
  • 网站营销推广有哪些阿里巴巴网站怎样做的漂亮
  • 苏州专业网站建设公司wordpress新增站点
  • 网站四网合一品牌设计工作内容
  • 网站开发公司的销售方式厦门网站建设 孚珀科技
  • 电子商务网页设计与网站建设论文婚庆设计效果图
  • 网站欢迎页怎么做网站建设工作思路
  • 用psd做的买书网站商城网站建站程序
  • 网站建设沟通技巧自己怎么注册一个网站
  • asp.net的网站开发wordpress 模板语言
  • 做照片书的模板下载网站好字体不显示 wordpress
  • 游戏网站建设公司免费的图库网站
  • 【work】yolov11训练与自动标注全过程(以吸烟检测为例子)
  • 主流的自助建站网站wordpress增加产品
  • 个人网站制作模板主页常用设计资源网站
  • 网站进度表如何免费创建一个个人网站