cookie反爬之初级反爬

前言

该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~

需求

目标网站:
aHR0cDovL3d3dy56am1hemhhbmcuZ292LmNuL2hkamxwdC9wdWJsaXNoZWQ/dmlhPXBj

正文

抓包后可以看到请求头有这一个值
X-CSRF-TOKEN: mmyn0BB8axl4jzelKjByxI4M83KElTWG5WLBCQQN
翻页再次抓包后这个值还是一样的,但是清除了缓存后这个值是会变得
那么我们可以分析假设必须要带这个值才能访问成功
2种可能性
1、第一次访问首页 在cookie里面携带
2、第一次访问首页 在html里面携带
我们全局搜一下发现这个值是写死在html里面的,所以我们需要通过正则去提取这个值

cookie反爬之初级反爬_第1张图片
经过测试,请求需要验证cookie的这个参数,那么这个我们可以通过python第一次访问首页,获取这个cookie的值。然后再后续的爬虫中携带上这个值就可以了
以下是python代码:


import re

import requests

def get_cookie():
    url = 'http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc'
    res = requests.get(url)
    szxx_session = res.cookies.get('szxx_session')
    token = re.findall("var _CSRF = '(.*?)';",res.text)
    print(szxx_session)
    return szxx_session, token[0] if token else 'mmyn0BB8axl4jzelKjByxI4M83KElTWG5WLBCQQN'

def crawl():
    session,token = get_cookie()

    url = 'http://www.zjmazhang.gov.cn/hdjlpt/letter/pubList'
    data = {
        "offset": "0",
        "limit": "20",
        "site_id": "759010"
    }
    res = requests.post(url,
       headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
        'X-CSRF-TOKEN': token,
         'Cookie': 'szxx_session={}'.format(session)
    },data=data)
    print(res.text)


if __name__ == '__main__':
    # get_cookie()
    crawl()

最后

欢迎联系作者交流更多

你可能感兴趣的:(爬虫,python,开发语言)