爬虫【升级】(套路一)

本实例只要注意点在cookies的传递过程。

示例一:爬取数据(携带请起头)

import requests
from bs4 import BeautifulSoup

r1 = requests.get(
    url='https://dig.chouti.com/',
    headers={
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
    }
)

soup = BeautifulSoup(r1.text, 'html.parser')

使用headers属性,可以在其中输入在浏览器中查看网页(F12)得到Response Headers的信息,输入到headers中,headers是一个dict,可以输入多个Response Headers中的信息,由此,可以把一些带有反爬虫技术的网页读出来。
例如,打开浏览器,点击F12


在这里插入图片描述

标签对象
content_list = soup.find(name='div', id='content-list')
print(content_list)

item_list = content_list.find_all(name='div', attrs={'class': 'item'})
for item in item_list:
    a = item.find(name='a', attrs={'class': 'show-content color-chag'})
    print(a.text.strip())
    # print(a.text)

示例二:点赞

import request
1. 查看首页
r1 = requests.get(
        url='https://dig.chouti.com/',
        headers={
            'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
        },
        Cookie = r1.cookies.get_dict()
    )
2. 提交用户名和密码
r2 = requests.post(
        url='https://dig.chouti.com/login',
        headers={
            'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
        },
        data={
            'phone':'8613121758648',
            'password':'woshiniba',
            'oneMonth':1
        },
        cookies=r1.cookies.get_dict()
    )

点击登陆按键,通过F12查看network,其中,此时的requests.get变为request.post,由获取信息,变为提交信息。


在这里插入图片描述

同时,还需要把密码账户添加到data属性中,data同headers一样,都是一个dict。把Form Data中的信息全部填写如data属性中去。

在这里插入图片描述

3. 点赞功能
r3 = requests.post(
        url='https://dig.chouti.com/link/vote?linksId=20435396',
        headers={
            'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
        },
        cookies=r1.cookies.get_dict()
    )
    print(r3.text)

其中,在有的网页中,Cookie的值在登陆完成之后,得到的Cookie是不同的,再点在的时候,不能使用登陆之后的,只能使用第一次打开首页时候得到的Cookie,即上面代码中的r1.cookies.get_dict()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值