前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >request_

request_

作者头像
云雀叫了一整天
发布2019-09-29 17:39:50
8730
发布2019-09-29 17:39:50
举报
文章被收录于专栏:Hi, PythonHi, Python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_40313634/article/details/90708014

爬虫常用方法

makedown 语法

request 常用方法

1. 请求网页

代码语言:javascript
复制
import requests
  
headers = {
    'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
data = {
    'ie': 'utf-8',
    'tn': 'baidu',
    'wd': 'python'
}
url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python&rsv_pq=934b6a7100010d36&rsv_t=60d37A5z9ROfcyxNYhFux2MawwK%2B2kme47GF1tQy5WPG38k0cTYUHviVL9U&rqlang=cn&rsv_enter=1&rsv_sug3=6&rsv_sug1=6&rsv_sug7=100&rsv_sug2=0&inputT=2783&rsv_sug4=2784&rsv_sug=2'
r = requests.get(url, params=data, headers=headers, timeout=1) # 最多等待1秒。留空则无限等待。
if r.status_code == requests.codes.ok:
    print('访问成功')
    # r.cookies、r.text:文本信息、r.json()、r.content:二进制信息

2. 维持会话

代码语言:javascript
复制
import requests
  
s = requests.Session()
s.get('http://httpbin.org/cookies/set/number/123456789')  # 设置cookies
r = s.get('http://httpbin.org/cookies')  # 沿用设置的cookies
print(r.text)

3. 忽略 SSL 证书验证

代码语言:javascript
复制
import requests
from requests.packages import urllib3
  
urllib3.disable_warnings()  # 屏蔽告警信息
r = requests.get('https://www.12306.cn', verify=False)
print(r.status_code)

4. 身份认证

代码语言:javascript
复制
import requests
from requests.auth import HTTPBasicAuth
  
r = requests.get('http://localhost:5000', auth=('username', 'password'))
print(r.status_code)

正则表达式

1. 常用方法

代码语言:javascript
复制
import re
  
content = 'Extra strings Hello 1234567 world_This is a dog string'
result = re.match('Extra.*?(\d+).*?world', content)  # 只能从字符串开头开始匹配
print(result.group(), result.group(1), result.span())
  
result = re.search('Extra.*?(\d+).*?world', content)  # 可以从任意位置开始匹配:返回匹配到的第一个字串
print(result.group(), result.group(1), result.span())
  
result = re.findall('Extra.*?(\d+).*?world', content)  # 可以从任意位置开始匹配:返回匹配到所有字串的list
print(result)
  
result = re.sub('\d+', '', content)  # 类似 replace 函数:替换
print(result)

2. 常用修饰符

代码语言:javascript
复制
re.I : 忽略大写小写
re.S : 忽略换行

信息保存

1. 网页信息保存

代码语言:javascript
复制
with open('baidu.html', 'w', encoding='utf-8') as f:
    f.write(r.text)

2. 二进制信息保存:图片、视频等

代码语言:javascript
复制
with open('baidu.html', 'wb', encoding='utf-8') as f:
    f.write(r.content)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 爬虫常用方法
    • request 常用方法
      • 1. 请求网页
      • 2. 维持会话
      • 3. 忽略 SSL 证书验证
      • 4. 身份认证
    • 正则表达式
      • 1. 常用方法
      • 2. 常用修饰符
    • 信息保存
      • 1. 网页信息保存
      • 2. 二进制信息保存:图片、视频等
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档