Python爬虫 #009 爬虫解决页面登录

4.1-cooki

缺点:cooki只存在一定时间

  1. 有些网站需要登录才能看见里面的内容,如何让爬虫也能获取?

    我们登录网页时,浏览器会把我们我用户名密码等信息加密在cooki中,再发送给服务器,服务器识别用户名密码后就返回登录后的页面给用我们。

    登录一次后,浏览器在一段时间再次访问该网址将不需要输入密码,因为服务器会记录cooki一段时间。

    就可以在爬虫中加入cooki信息来发送用户的信息

  2. 实现过程

    输入用户名登录后!!!,F12查看服务器返回的数据,在里面可以查看cooki,如:

    1586682902904

    代码实现:

    import requests 
    
    url = "https://so.gushiwen.org/user/collect.aspx"
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400',
        'cookie': 'login=flase; wsEmail=2744255833%40qq.com; Hm_lvt_04660099568f561a75456483228a9516=1584855665,1586681311; ASP.NET_SessionId=ojteuyrkanthnihhuemfxjcf; codeyzgswso=0df1fee001fbfe43; gsw2017user=242603%7c0D8477911D64064585A0063F775442B1; login=flase; gswZhanghao=2744255833%40qq.com; gswEmail=2744255833%40qq.com; idsShiwen2017=%2c71169%2c8279%2c7722%2c5637%2c22550%2c70751%2c71958%2c71072%2c47734%2c; Hm_lpvt_04660099568f561a75456483228a9516=1586681770'
    }
    
    session = requests.Session()
    response = session.get(url=url,headers=headers)
    response.encoding='utf-8'
    data = response.text
    print(data)
    

    效果如下:可以得到登录后才能获取的信息

    1586682989654



4.2-selenium

缺点:需学习selenium

找到输入用户名和密码的框send_key,再click即可简单粗暴。

posted @ 2023-06-28 22:56  枫_Null  阅读(49)  评论(0)    收藏  举报