1.如何在Python中使用urllib2
urllib和urllib2urllib和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。
这意味着,你不可以伪装你的UserAgent字符串等。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。
这是为何urllib常和urllib2一起使用的原因。目前的大部分http请求都是通过urllib2来访问的httplibhttplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现。
2.python为什么叫爬虫?
爬虫通常指的是网络爬虫,就是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。
在进入文章之前,我们首先需要知道什么是爬虫。爬虫,即网络爬虫,大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到自己的猎物(所需要的资源),那么它就会将其抓取下来。比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。不容易理解的话其实可以通过下面的图片进行理解:
因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
作为一门编程语言而言,Python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的特点从而深受程序员的喜爱。举一个例子:完成一个任务的话,c语言一共要写1000行代码,java要写100行,而python则只需要写20行的代码。使用python来完成编程任务的话编写的代码量更少,代码简洁简短可读性更强,一个团队进行开发的时候读别人的代码会更快,开发效率会更高,使工作变得更加高效。
这是一门非常适合开发网络爬虫的编程语言,而且相比于其他静态编程语言,Python抓取网页文档的接口更简洁;相比于其他动态脚本语言,Python的urllib2包提供了较为完整的访问网页文档的API。此外,python中有优秀的第三方包可以高效实现网页抓取,并可用极短的代码完成网页的标签过滤功能。
python爬虫的构架组成如下图:
1、URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器;
2、网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器;
3、网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。
而python的工作流程则如下图:
(Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。)
Python是一门非常适合开发网络爬虫的编程语言,提供了如urllib、re、json、pyquery等模块,同时又有很多成型框架,如Scrapy框架、PySpider爬虫系统等,本身又是十分的简洁方便所以是网络爬虫首选编程语言!
3.Python爬虫好学吗?
您好,本人具有多年python开发经验,希望能和大家一起讨论python开发共同进步!首先了解下什么是爬虫?爬虫就是一个在网上能按照一定规则,获取自己想要资源的脚本程序。
首先讨论下python爬虫好不好学?对于有python开发基础的人来说,肯定好学,为什么?因为python爬虫无非就是多学python的几个爬虫框架和它的集合三方库而已,例如scrapy,pyspider,rquest,beautifulsoup等。 这对于python开发人员来说,这和学习flask或者tornado并无任何差别,可以很快上手!对于没有python开发经验的人来说,可以说这点就非常难了,可以说如果对于没有编程经验的人来说,这就是天书!再次我们看下python的爬虫框架都有哪些,如果要学习从哪些入手会很快入门?常见的爬虫框架都有以下几种:这些框架,个人建议从scrapy入手,这个框架功能非常强大,并且各大公司对比的应用度也比较高,擅长于数据挖掘,信息处理和历史数据存储,网上也有很多的视频教程供学习!其次是pyspider,这个框架可以在浏览器界面进行脚本编写,并且能够对爬取结果实时查看,结果全部存在后端数据库,还能对任务的优先级进行设置,设置定时任务等!希望我的回答能够帮助到您,如果您有任何疑问,请与我交流,祝您学习进步,工作顺利!!。
4.python怎么学习
看官方的python文档足够了,完整又权威。
有PDF版,也有chm版,也有在线版。每个版本的python都会发布一个同一版本的文档,这样的话也能很好的区分各个版本python的差异。
另外,python只要掌握基本语法之后就可以写程序了,写程序过程就是模块熟悉过程。 像python,perl这种语言,语言本身没多大的作用,是靠它们的内置模块或者第三方模块来体现其强大。
根据你的用途,推介几个模块: 1、解析文档:string和re模块。re是正则表达式模块,这个很重要。
像python、perl这些语言,正则表达式正是这些语言引以为傲的部分。 2、从网页抓取数据:有urllib和urllib2这两个模块外加re模块一般足够用了。
上面说的几个模块均python安装包内已含有,不需要单独下载。 具体写的时候找个例子,照葫芦画瓢,写出来分析分析,写几次就明白了。
5.python urllib2的用法
urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy。
如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用下面的方式: import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'IP:8080'}) null_proxy_handler = urllib2.ProxyHandler({}) if enable_proxy: opener = urllib2.build_opener(proxy_handler) else: opener = urllib2.build_opener(null_proxy_handler) urllib2.install_opener(opener) 这里要注意的一个细节,使用 urllib2.install_opener() 会设置 urllib2 的全局 opener 。这样后面的使用会很方便,但不能做更细粒度的控制,比如想在程序中使用两个不同的 Proxy 设置等。
比较好的做法是不使用 install_opener 去更改全局的设置,而只是直接调用 opener 的 open 方法代替全局的 urlopen 方法。
转载请注明出处编程代码网 » pythonurllib2