爬虫之Request库的使用

    技术2022-07-17  71

    Requests库

    一. 优点

    简单易用
    url自动转义
    py2和py3一致

    二. 使用方法

    User-Agent

    包含电脑信息和浏览器信息,为了反爬,采用多个User-Agent的方式。网上可查询到

    headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36' } response = requests.get(url=url, headers=headers)

    IP

    登录网页ip,为了反爬,采用多个ip的方式。网上有免费和收费两种

    free_proxy = {'http': '45.136.245.22:8080'} response = requests.get(url=url,proxies=free_proxy)

    Cookie

    1)手动
    cookies = '_ga=GA1.2.1820447474.1535025127; MEIQIA_EXTRA_TRACK_ID=199Tty9OyANCXtHaSobJs67FU7J; cook_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookies.split('; ')} response = requests.get(url=url,cookies=cook_dict)
    2)自动登录信息获取并登录
    url = 'https://www.yaozh.com/member/' # 1.代码登录 session = requests.session() # session 类 可以自动保存cookies # 登录界面checkN->preservelog->login->find: 1)login_url 2)post->form_data;get->query login_url = 'https://www.yaozh.com/login' login_form_data = { 'username':'xiaomaoera12', 'pwd': 'lina081012', 'formhash': '54AC1EE419', 'backurl': 'https://www.yaozh.com/', } login_response = session.post(login_url,data=login_form_data,headers=headers) # 2.登录成功之后 带着 有效的cookies 访问 请求目标数据 data = session.get(member_url,headers=headers).content.decode()

    SSL取消认证

    因为https 是有第三方CA 证书认证的,但是有的网站虽然是https 但是 它不是CA证书, 而是他自己颁布的证书(例如12306)。解决方法 是: 告诉web 忽略证书访问

    response = requests.get(url=url, headers=headers, proxies=free_proxy ,verify=False)

    返回数据提取Text&Content

    1) text(更常用)

    返回的是Unicode型的数据。

    content = r.text #先读取 html = etree.HTML(content) #再解码
    2) content(可能有不能解析的)

    返回的是bytes数据。

    两种形式utf-8和gbk:

    ​ *** utf-8->decode(“utf-8”)(linux&mac默认)->file.write(data,encoding=“utf-8”)

    ​ *** gbk->decode(“gbk”)(win默认)->file.write(data,encoding=“gbk”)

    Processed: 0.009, SQL: 9