Python,小白自学爬虫

Posted 冈本零点零壹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python,小白自学爬虫相关的知识,希望对你有一定的参考价值。

学习内容源自:博客园 金角大王

 

2018.7.22

Urllib库的基本使用                                                                                                                                   

什么是Urllib?

 

Urllib是python内置的HTTP请求库
包括以下基础模块:
urllib.request       请求模块
urllib.error       异常处理模块
urllib.parse      url解析模块
urllib.robotparser  robots.txt解析模块

 

 urllib.request的使用                                           

  • urlopen

urllib.request.urlopen

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

一般常用:urllib.requeset.urlopen(url,data,timeout)

  • url参数

简单栗子

 

1 import urllib.request
2 
3 response = urllib.request.urlopen(https://bj.ke.com/)
4 print(response.read().decode(utf-8))

 

结果:抓取贝壳网首页的Javascript中的内容

response.read()可以获取到网页的内容,decode(‘utf-8‘)可以是抓取到的内容以utf-8的格式输出

  • data参数

 

网站:http://httpbin.org 

该网站可以用来模拟各中请求

栗子:

 

1 import urllib.parse
2 import urllib.request
3 
4 data = bytes(urllib.parse.urlencode({word: hello}), encoding=utf8)
5 print(data)
6 response = urllib.request.urlopen(http://httpbin.org/post, data=data)
7 print(response.read())

 

备注:

1、urllib.parse  url解析模块

2、通过bytes(urllib.parse.urlencode())可以将post数据进行转换放到urllib.request.urlopen的data参数中,这样就完成了一次post请求

3、添加data参数的时候就是以post请求方式请求,如果没有data参数就是get请求方式

4、GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在头部

GET:向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问

POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

  • timeout参数

{"args":{},"data":"","files":{},"form":{"word":"shang"},"headers":{"Accept-Encoding":"identity","Connection":"close","Content-Length":"10","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org","User-Agent":"Python-urllib/3.7"},"json":null,"origin":"183.240.196.58","url":"http://httpbin.org/post"}

b‘{"args":{},"headers":{"Accept-Encoding":"identity","Connection":"close","Host":"httpbin.org","User-Agent":"Python-urllib/3.7"},"origin":"183.240.196.58","url":"http://httpbin.org/get"} ‘

 







以上是关于Python,小白自学爬虫的主要内容,如果未能解决你的问题,请参考以下文章

python小白提问?

Python小白写的三个入门级的爬虫(附代码和注释)

Python自学从入门到就业之函数基础(小白必看)

自学python之爬虫3股票数据爬虫

scrapy按顺序启动多个爬虫代码片段(python3)

零基础自学Python 3开发网络爬虫: 用到的数据结构简介以及爬虫Ver1.0 alpha