快使用Ctrl+D收藏本站!如果本站的文章以及资源有帮助到您,希望您能赞助本站服务器费用,感谢您的支持!本站开放注册,现邀请您一起分享技术心得!您可以-注册-

Python3.6 爬虫入门自学教程之四:urllib应用最简单的爬虫代码实例

Python爬虫 Julius_wen 673℃ 0评论

Python3.6 爬虫入门之四urllib应用最简单的爬虫代码实例

1.简单爬虫实例代码-get请求方式

上面这几行短短的代码,就已经实现了最简单的爬虫功能。点击pycharm软件的运行,下面的调试框就能打印出爬取下来的百度首页的HTML等代码了。(这里我使用的是pycharm软件进行编程调试的)

urlopen打开url链接之后,就获得了数据,这个数据需要进行解码,解析成HTML数据,所以使用了decode这个方法。

首先import urllib.request这个第三方库,这里需要注意一下,这个和python2.7里不一样。python 3.x中urllib库和urilib2库合并成了urllib库。

其中urllib2.urlopen()变成了urllib.request.urlopen()

urllib2.Request()变成了urllib.request.Request()

关于这些库的说明,可以点击https://docs.python.org/3.6/library/ 然后查看21.6部分

这几个库就是我们常用的url库,这里可以看到urllib.request是用于打开url链接的扩展库,urllib.response是常用的url应答类。urllib.parse是用于解析数据的模块。然后点击都能看到每个模块都能点击打开。都有详细的英文说明:https://docs.python.org/3.6/library/urllib.request.html

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

Open the URL url, which can be either a string or a Request object.

这个方法,实际上可以传入的参数有很多。我们常用的是三个参数的:

urllib.requeset.urlopen(url,data,timeout),第一个参数url代表的是链接地址,第二个data是经过urllib.parse解析后转换的数据,然后这个数据作为data。这样就完成了一次post请求,而最上面的那个简单爬虫代码urllib.request.Request()只有1个参数实际上就是默认的get请求,而urlopen()中传入data,完成的就是post请求。下面这里的http://httpbin.org/post这个网站可以用来测试urllib各个功能的模拟站点使用。

本文原创,转载请注明:http://www.yanjuntech.cn

2.post请求方式

打印如下信息:

urlencode是一个函数,可将字符串以URL编码,用于编码处理。URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。——百度百科

urllib.parse.urlencode({‘word’: ‘hello’}), encoding=’utf8′)这个函数的详细说明,也可以在https://docs.python.org/3.6/library/urllib.parse.html这里有关于这个函数的讲解。不过是英文的

本文原创,转载请注明:http://www.yanjuntech.cn

urllib.requeset.urlopen(url,data,timeout),第三个参数,一般设置个合理值或者不设置。如果超时设置的时间太短,就会报错,报错之后我们就要进行相应的错误处理,在下一篇博文中我将进行表述。这里设置timeout = 1,正常返回结果。

如果这里将timeout = 1改写为 timeout = 0.1,就会报如下错误:

3.urllib.request.Request()

class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

这个请求方式,比直接使用上面的urlopen更加规范,一般在进行网络请求的时候,还需要包含很多额外的信息,比如header请求头,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确。使用Request这个类的时候,还需要添加其他的一些基本。

上面这段代码,和最上面的代码是效果是一样的,这里推荐使用这种方式。首先构建Request对象,然后使用urlopen打开数据。

下一篇博文,我们将使用urllib的高级方法,来进行设置请求头,通过爬虫模拟登陆csdn网站。

 

 

转载请注明:燕骏博客 » Python3.6 爬虫入门自学教程之四:urllib应用最简单的爬虫代码实例

赞赏作者

微信赞赏支付宝赞赏

喜欢 (1)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址