python3爬虫学习(3)

Requests小技巧

  • 先在Ipython中看几种表达式

  • 获得cookie

  • URL解码,编码

 

requests.utils.unquote("url")

requests.utils.quote("url")

 

  • ssl验证问题
response = requests.get("https://www.12306.cn/mormhweb/ ", verify=False)
  • 设置超时
response = requests.get(url,timeout=3)
  • retrying模块

有时候可能需要刷新模块,需要用到这个这个功能(这个模块需要安装)

下面看一个例子测试上述功能的例子(这里利用的类封装起来了)

 

# coding=utf-8
import requests
from retrying import retry # 导入模块

headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"}

@retry(stop_max_attempt_number=3) #尝试执行的次数
def _parse_url(url,method,data,proxies):
print("*"*10) # 用来辨别是否执行3次
if method=="POST":# 判别是哪一种请求
response = requests.post(url,data=data,headers=headers,proxies=proxies)
else:
response = requests.get(url,headers=headers,timeout=3,proxies=proxies)
assert response.status_code == 200
return response.content.decode()

def parse_url(url,method="GET",data=None,proxies={}):
try: #异常捕获
html_str = _parse_url(url,method,data,proxies)
except:
html_str = None

return html_str

if __name__ == '__main__': # 测试函数
url = "www.baidu.com"
print(parse_url(url))

 

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00