啥问题啊各位大神- #导入需要使用的模块
-
- from urllib import request #访问模块urllib
- import re #正规表达式(用来过滤信息?)
- import os #对系统有操作需要用到os模块
- import random #随机模块
-
- #设置多个浏览器备用,基于PC端
-
- agent_one='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'#Chrome Win7
- agent_two='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0'#Firefox Win7
- agent_three='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'#Safari Win7
- agent_four='Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50'#Opera Win7
- agent_five='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)'#IE Win7+ie9
- agent_six='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)'#Win7+ie8
- agent_seven='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)'#Win7XP+ie8
- agent_eight='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'#WinXP+ie8
- agent_night='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'#WinXP+ie7
- agent_ten='Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12'#WinXP+ie6
- agent_eleven='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)'#傲游3.1.7在Win7+ie9,高速模式
- agent_twelve='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)'#傲游3.1.7在Win7+ie9,IE内核兼容模式
- agent_thirteen='Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0'#搜狗
- agent_fourteen='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)'#搜狗3.0在Win7+ie9,高速模式
- agent_fifteen='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201'#360浏览器
- agent_seventeen='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201'#QQ浏览器
- agent_eighteen='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'#QQ浏览器6.9(11079)在Win7+ie9,IE内核兼容模式
- agent_nineteen='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36'#阿云浏览器
- agent_twenty='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36'#
-
- #封装信息到List列表
- agent_list=[agent_one,agent_two,agent_three,
- agent_four,agent_five,agent_seven,
- agent_eight,agent_night,agent_ten,
- agent_eleven,agent_twelve,agent_thirteen,
- agent_fourteen,agent_eighteen,agent_nineteen,agent_twenty
- ]
-
- Agent=random.choice(agent_list)
-
- #构造请求头信息
- header={'User-Agent':Agent}
-
- #网址
- url=r'http://www.baidu.com/'
-
- #构建处理器对象(专门处理HTTP/HTTPS请求的对象)
- http_hander=request.HTTPHandler()
-
- #创建自定义opener
- opener=request.build_opener(http_hander)
-
- #创建自定义请求对象
- req=request.Request(url,headers=header)
-
- #opener发送请求,获取响应信息,
- reponse=opener(req).read().decode()
- #Urlopen发送请求,获取响应信息,自动创建请求对象。缺点是无法自定义封装,无法添加自己的元素进去
- #reponse=request.urlopen(req).read().decode()
-
-
- pat=r'<title>(.*?)</title>'
- data=re.findall(pat,reponse)
-
- #print(type(data)) 输出结果是List列表信息
- print(data[0])
复制代码 执行结果:
Traceback (most recent call last):
File "C:/Users/28158/.PyCharm2019.1/config/scratches/scratch.py", line 58, in <module>
reponse=opener(req).read().decode()
TypeError: 'OpenerDirector' object is not callable |