hh先强力推荐下python推出的kite神器,安装好后,写代码都有提示,超级帮,解决忘记完整代码

爬虫学习(2):request库使用_python


步入正题: request,老规矩,不讲原理,讲方法,不喜欢废话

还是以爬取CSDN为例子

import urllib.request
request = urllib.request.Request
response=urllib.request.urlopen(request)
print(response.read().decode('utf-8'))

第一步导入库吧

第二步request来加入了Request类响应网址

第三步urlopen打开request

最后一步就是打印,加上一个编码方式utf-8

其实这就是request一个最基本完整的构建

爬虫学习(2):request库使用_chrome_02


我主要要讲到request库下的Request类使用,没有它真没法继续爬虫了

from urllib import request,parse
url=
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
dict={'name':'chuan'}
data=bytes(parse.urlencode(dict),encoding='utf-8')
req=request.Request(url=url,data=data,headers=headers,method='POST')
response=request.urlopen(req)
print(response.read().decode('utf-8'))

这样爬取是个模式吧,不过很明显我被反爬了

爬虫学习(2):request库使用_chrome_03


HTTP Error 403: Forbidden这个报错就是服务器禁止访问

这不影响,继续讲:因为我们要用到header请求头,所以要用到Request类

算了,换一个网址爬,代码没变,换了个网址

from urllib import request
url='https://zhuanlan.zhihu.com/p/146913886'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
req=request.Request(url=url,headers=headers,method='POST')
response=request.urlopen(req)
print(response.read().decode('utf-8'))

反正就是简单的爬取了网页源码下来了

爬虫学习(2):request库使用_python_04


一步步讲:

(1)url='https://zhuanlan.zhihu.com/p/146913886’第二行代码呢,就是简单的放个网址

(2)headers={‘User-Agent’:‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36’}这一行代码呢,就是放请求头

(3)req=request.Request(url=url,headers=headers,method=‘POST’)这一行代码呢,我就理解为是用来对应下需要请求的什么,要用到哪个请求头来对应,method就是请求方式为POST

(4)response=request.urlopen(req)这一行代码呢,就是来请求打开这个网页,网页时url已经传参传到req里面了,headers是同样道理

(5)最后就是打印:print(response.read().decode(‘utf-8’)),为了防止乱码,就用了个decode为utf-8

ok,你们去试试别的网页爬取呗,这是简单的爬取网页源码,别急,先熟悉下这个架构,后面再慢慢讲