新媒体课堂:pythoPython爬虫实战二( 二 )


文章图片
这里演示的是使用Chrome的ua值:
新媒体课堂:pythoPython爬虫实战二
文章图片
通过UA值的伪装 , 就可以告诉别人 , “我是一个浏览器” , 那么UA值该如何使用呢?这里就要用到request类:
Request类首先它会有一个header , 在这里记录了一些基本的信息:
新媒体课堂:pythoPython爬虫实战二
文章图片
还要有一个User-agent , 这里是一些版本的要求 , 以及对能接受的浏览器版本、CSS样式等信息的描述:
新媒体课堂:pythoPython爬虫实战二
文章图片
有了以上两个参数 , 就可以构建一个request请求了 。
接下来就是对request的使用实战演示:
新媒体课堂:pythoPython爬虫实战二
文章图片
运行结果为:
新媒体课堂:pythoPython爬虫实战二
文章图片
总结:格式:Request(url , data=https://pcff.toutiao.jxnews.com.cn/p/20200411/None , headers=())要在发起请求之前将内容填充完毕!
【新媒体课堂:pythoPython爬虫实战二】初始化方法 , 构造一个请求对象 。 可添加一个header的字典 。 data参数决定是GET还是POST请求 。 add_header(key , val)为header中增加一个键值对 。
接下来看一个示例:
fromurllib.requestimportRequest , urlopenimportrandom#随机函数 , 用来随机UA值#打开一个url返回一个Request请求对象#url='https://movie.douban.com/'#注意尾部的斜杠一定要有url='http://www.bing.com/'ua_list=[#包含UA值的List , 不停地切换地址 , 保证不被发现是爬虫”Mozilla/5.0(WindowsNTI6.1;Win64;x64)AppleWebKit/537.36(KHTML , likeGecko)Chrome/57.0.2987.133Safari/537.36” , #chrome”Mozilla/5.0(Windows;U;WindowsNT6.1;zh-CN)ApplewebKit/537.36(KHTML , likeGecko)Version/5.0.1Safari/537.36” , #safafi”Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:50.0)Gecko/20100101Firefox/50.0” , #Firefox“Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0)”#IEua=random.choice(ua_list)#随机一个UA值#ua需要加到请求头中request=Request(url)request.add_header('User-Agent' , random.choice(ua_list))print(type(request))response=urlopen(request , timeout=20)#request对象或者url都可以print(type(response))withresponse:print(1 , response.status , response.getcode() , response.reason)#状态 , getcode本质上就是返回statusprint(2 , response.geturl())#返回数据的url 。 如果重定向 , 这个url和原始url不一样#例如原始url是http://www.bing.com/ , 返回http://cn.bing.com/print(3 , response.info())#返回响应头headersprint(4 , response.read())#读取返回的内容print(5 , request.get_header('User-agent'))print(6 , 'user-agent'.capitalize())执行结果为:
新媒体课堂:pythoPython爬虫实战二
文章图片
到这里就完成了对User-agent的修改 , 同时也学会了request和urlopen的使用方式 。
上述的简单代码是学习爬虫的第一步 , 就算以后在开发中会用到框架 , 但是还是从基本内容出发的 , 希望同学们可以多加了解!
点击查看配套视频课程获取更多内容 , 请订阅Python学习站官方技术圈!


推荐阅读