request_

2019-09-29 17:39:50 浏览数 (1)

版权声明:本文为博主原创文章,遵循 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+2kme47GF1tQy5WPG38k0cTYUHviVL9U&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)

0 人点赞