python实现模拟浏览器登录_python--实践--模拟浏览器(http)登陆

本文详细介绍了如何使用Python的requests库通过cookies和headers进行网页抓取,涉及了header的重要性、是否重复添加cookies的问题以及Android端接口的特殊情况。作者分享了实战经验和常见误解,帮助读者理解爬虫中的基本配置。
摘要由CSDN通过智能技术生成

1 #以下代码是利用方法1

2 #-*- coding: utf-8 -*-

3 importrequests;4 importsys;5 importio;6 #重点:标准解析库

7 from bs4 importBeautifulSoup;8 sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8'); #改变标准输出的默认编码

9 #根据cookies访问后台

10 url = 'http://域名/other/other.comment.wall.php?ac=l&id=&fid=&uid=&title=&source=0&status=0&b_time=&e_time=';11

12 #浏览器登录后得到的cookie,也就是刚才复制的字符串

13 cookie_str = r'PHPSESSID=9f20c6bb676841f38aee8589aceb5c7f; username=zhonghuihong; password=XXX';14 #把cookie字符串处理成字典,以便接下来使用

15 cookies ={};16 for line in cookie_str.split(';'):17 key, value = line.split('=', 1);18 cookies[key] =value;19 #设置请求头,直接复制即可

20 headers = {'User-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36'};21 疑问:请求头header是不是必须要加22 搜罗网上的答复:23 ①、不加,直接裸着请求url,似乎也没有报错,自己尝试也是这样

24 ②、防止封ip,加上准没错

25 ③、禁止反扒机制,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取(headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据)

26 ④、作为一个良好的习惯,最好都要加上27

28 疑问二:请求头里面已经含有cookies,请求时是否还要重复添加一个cookies=cookies参数29 根据自己的实践:不需要重复添加30

31

32 疑问三:为什么访问android端的接口基本不用提前设置header33 header里面是手机端信息,通过手机端页面去爬不会那么容易被封(这个是询问网友来着,至今不知道原因),根据目前实践确实不需要34

35

36 #在发送get请求时带上请求头和cookies()

37 resp = requests.get(url, headers = headers, cookies =cookies);38 html_resp=resp.content.decode('UTF-8');39 #print(resp.content.decode('utf-8'));

40 soup_string = BeautifulSoup(html_resp, 'html.parser');41 soup_table=soup_string.find(attrs={'class':'table table-striped table-bordered table-hover'});42 #print(soup_table);

43 soup_str=soup_table.findAll(attrs={'style':'text-align:center;vertical-align:middle;word-break:break-all; word-wrap:break-all;'});44 print(soup_str);45 #for soup in soup_str:

46 #print(soup.string);

47 #book_div = soup_string.find(attrs={"id":"book"})

48 #book_a = book_div.findAll(attrs={"class":"title"})

49 #for book in book_a:

50 #print book.string

51 #print(soup_string);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值