xpath爬取页面内容保存成文档_python网络爬虫学习笔记(一) 爬取简单静态网页_cos的博客-CSDN博客...

这篇博客介绍了如何使用urllib3和requests库进行HTTP请求,包括生成请求、处理请求头、设置超时、请求重试以及创建完整HTTP请求。还提到了requests库解决字符编码问题的方法,并简述了网页解析和数据存储的初步概念。
摘要由CSDN通过智能技术生成

目录

一、使用urllib3实现HTTP请求

1.生成请求

2.处理请求头

3.Timeout设置

4.请求重试设置

5.生成完整HTTP请求

二、使用requests库实现HTTP请求

解决字符编码问题

三、解析网页

1.元素面板

2.源代码面板

3.网络面板

四、使用正则表达式解析网页

1. Python正则表达式:寻找字符串中的姓名和电话号码

完整代码

五、使用Xpath解析网页

1.基本语法

2.谓语

3. 功能函数

4.谷歌开发者工具使用

六、数据存储

1.以json格式存储

一、使用urllib3实现HTTP请求

1.生成请求

通过request方法生成请求,原型如下

urllib3.request(method,url,fields=None,headers=None,**urlopen_kw)

参数说明method接收string。表示请求的类型,如"GET"(通常使用)、“HEAD”、"DELETE"等,无默认值

url接收string。表示字符串形式的网址。无默认值

fields接收dict。表示请求类型所带的参数。默认为None

headers接收dict。表示请求头所带参数。默认为None

**urlopen_kw:接收dict和python中的数据类型的数据,依据具体需求及请求的类型可添加的参数,通常参数赋值为字典类型或者具体数据

code:

import urllib3

http = urllib3.PoolManager()

rq = http.request('GET',url='http://www.pythonscraping.com/pages/page3.html')

print('服务器响应码:', rq.status)

print('响应实体:', rq.data)

2.处理请求头

传入headers参数可通过定义一个字典类型实现,定义一个包含User-Agent信息的字典,使用浏览器为火狐和chrome浏览器,操作系统为"Window NT 6.1;Win64; x64",向网站"http://www.tipdm/index.html"发送带headers参数的GET请求,hearders参数为定义的User-Agent字典

import urllib3

http = urllib3.PoolManager()

head = {'User-Agent':'Window NT 6.1;Win64; x64'}

http.request('GET',url='http://www.pythonscraping.com/pages/page3.html',headers=head)

3.Timeout设置

为防止因网络不稳定等原因丢包,可在请求中增加timeout参数设置,通常为浮点数,可直接在url后设置该次请求的全部参数,也可以分别设置这次请求的连接与读取timeout参数,在PoolManager实例中设置timeout参数可应用至该实例的全部请求中

直接设置

http.request('GET',url='',headers=head,timeout=3.0)

#超过3s的话超时终止

http.request('GET',url='http://www.pythonscraping.com/pages/page3.html',headers=head,timeout=urllib3.Timeout(connect=1.0,read=2.0))

#链接超过1s,读取超过2s终止

应用至该实例的全部请求中

import urllib3

http = urllib3.PoolManager(timeout=4.0)

head = {'User-Agent':'Window NT 6.1;Win64; x64'}

http.request('GET',url='http://www.pythonscraping.com/pages/page3.html',headers=head)

#超过4s超时

4.请求重试设置

urllib3库可以通过设置retries参数对重试进行控制。默认进行3次请求重试,并进行3次重定向。自定义重试次数通过赋值一个整型给retries参数实现,可通过定义retries实例来定制请求重试次数及重定向次数。若需要同时关闭请求重试及重定向则可以将retries参数赋值为False,仅关闭重定向则将redirect参数赋值为False。与Timeout设置类似,可以在PoolManager实例中设置retries参数控制全部该实例下的请求重试策略。

直接设置

在这里插入代码片

应用至该实例的全部请求中

import urllib3

http = urllib3.PoolManager(timeout=4.0,retries=10)

head = {'User-Agent':'Window NT 6.1;Win64; x64'}

http.request('GET',url='http://www.pythonscraping.com/pages/page3.html',headers=head)

#超过4s超时 重试10次

5.生成完整HTTP请求

使用urllib3库实现向http://www.pythonscraping.com/pages/page3.html生成一个完整的请求,该请求应当包含链接、请求头、超时时间和重试次数设置。

d87bd68d03f05aa5038461e783044af6.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值