python 代理服务器、伪装浏览器、get和post请求的使用方法、urllib库以及抓包处理的使用详解


----------伪装浏览器
添加浏览器的头部信息即可
F12--network--然后随便打开一个网页找到User-Agent的值,并以字段的形式显示.

----------代理服务器

1、重复性的访问某一个网站,会被认定为恶意攻击.
解决办法:1、通过ads拨号,每访问一次更改一次IP地址,不过ip范围大致相同,又可能被封
2、通过代理服务器访问
查找代理服务器地址:http://www.xicidaili.com/
---urllib.request和get、post方法的配合使用

__________________________________爬区静态网页数据
import urllib.request
import re
url_jx=urllib.request.urlopen("https://read.douban.com/provider/all") #解析网页
url=url_jx.read() #读取解析之后的网页数据
url=url.decode("utf-8")#编辑读取网页数据的格式
ph='''<div class="name">(.*?)</div>'''#定义正则表达式
data=re.compile(ph).findall(url)#获取正则表达式相应的数据
file=open("/root/python_test/panchou/1.txt","w")
for line in data:
    file.write(line+"\n")
file.close()
html=urllib.request.urlretrieve("http://www.hellobi.com",filename="/root/python_test/panchou/1.html")#至少两个参数,一个是爬的地址,一个是本地端地址
urllib.request.urlcleanup()#运行urlretrieve会产生缓存,影响速度,这个命令是清除缓存
print(url_jx.getcode())#获取网页的状态代码
print(url_jx.geturl())#获取当前爬取的网页

————————————————————————————————————————————————————get方法获取
import urllib.request
keywd="python"  #分析网站规律
url="http://www.baidu.com/s?wd="+keywd#拼接网页
request=urllib.request.Request(url)#获取http请求
data=urllib.request.urlopen(request).read()#解析http请求,并读取数据
data=data.decode("utf-8")#编辑数据的编码
print(data)

——————————————————————————————————————————————————post请求
import urllib.request
import urllib.parse
html="http://www.iqianyue.com/mypost/" #设置连接
get_html=urllib.parse.urlencode(
    {"name":"weiwei",
     "pass":"weiweiwww"
     }
).encode("utf-8")#设置相应的数据,并设置编码
url=urllib.request.Request(html,get_html)#解析获取的html请求
data=urllib.request.urlopen(url).read()#读取解析的html数据
print(data)

_________________________________________________________________

---抓包处理 
当跳转网页地址不在源文件里面可以考虑抓包处理,下载Fiddler,并配置,
 

使用fiddler抓包过程中遇到一系列的问题,浪费了大半天时间~~~写下解决办法

按照网上方法配置之后还是无法抓到cookies提示各种证书错误

1、卸载fiddler重新安装,设置

2、设置步骤

(1)进入fiddler-option--https,去掉左边的勾,然后保存

(2)进入IE--Internet选项--内容---证书,删除所有的个人证书

(3)进入fiddler--option勾选左边的勾,如果弹出警告选择yes

(4)设置IE代理,进入Internet选项--链接,代理设置,设置代理为127.0.0.1,端口号为8888,PS:本地地址不适用代理前面的勾要勾上

接下来,重启fiddler之后,打开浏览器百度登陆看是否可以抓到cookies就可以了

Android设置代理

1、进入fiddler--option--connections,勾选允许手机代理

2、进入手机WiFi,设置代理

3、就可以抓取手机端的http请求了,PS:如果不行就重启fiddler

猜你喜欢

转载自blog.csdn.net/qq_24726509/article/details/82079471