一定要看,原来python爬虫这么简单

现在python凭借着人工智能越来越火,随之而来的是网上打着python旗号骗钱的骗子。其实python很简单。这也是python现在如此火的原因之一。所以大家学习python的时候,或者使用某个python库的时候,可以先去网上找文章,对某个库有个大概的了解。再去查阅官方文档,这样学起来非常快速,也非常全面。

废话不多说,今天要给大家介绍的是python爬虫。在看这篇文章之前,应该先了解python的基本语法。主要是了解基本的表达式,字典,列表,函数的使用就可以了。有了上述的准备接下来就是python爬虫编程了。

首先,我们要知道什么是爬虫,很多人会说是从网页中自动的抓取我们需要的信息。没错这是爬虫的作用。用更加专业的说法是:模拟用户行为,向web服务器发送数据,并且接收web服务器返回的数据,并对返回的数据进行提取,最后对爬取的数据进行保存。这就是爬虫。根据上面我们对爬虫的定义,因此我将编程爬虫程序分为了三个步骤:

1.模拟用户信息,向服务器发送请求。接收服务器发送的数据。

2.对数据进行提取。

3.保存你所提取的数据。

下面我们就分点陈述。**第一点:模拟用户信息,向服务器发送请求。接收服务器发送的数据。**这个过程我们主要使用的requests库。这个库功能强大,为我们封装好了很多方法。当然在使用之前必须pip install requests。

import requests
 
htmlInfo = requests.get(url='https://api.github.com/events') 
print(htmlInfo.status_code) # 获取返回状态
print(htmlInfo.text) #未解码之前的网页内容

当然光这样向服务器发送请求,这只对于简单的网页有效。很多网页给你返回信息还需要你向服务器发送其他的信息。比如你的header信息,或者你的data信息。这对于requests库来说同样简单。

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)

其中params就是我们所说的data。params就是我们向服务器提交的数据。

http://httpbin.org/get?key2=value2&key1=value1

因为是get请求所以我们向服务器请求的网址如上。

requests可以在我们发送请求的时候为我们加上data,同样能在我们的请求中加上header信息。headers是以字典的形式(键值对)。

r = requests.get(url, headers=headers)

想了解更多的requests信息请移步: http://2.python-requests.org/zh_CN/latest/user/quickstart.html

篇幅有限,上面就是requests的使用。下面我们关键讲述如何发送header信息。由于爬虫是机器访问,速度很多,一些小站可以会因为爬虫导致直接崩溃。所以很多站点都做了一些校验。校验该行为是真实用户,还是爬虫。在校验的时候就是通过校验头部信息。

Accept: text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8 

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Cache-Control: max-age=0
Connection: keep-alive
Cookie: _zap=b42a2f12-0168-4c9d-b1ae-7…23469e9acd7d59c19eed2c2b6b67"
Host: www.zhihu.com
Referer: https://www.baidu.com/link?url…45f3fe00723d37000000065d746100
TE: Trailers
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/69.0

有时候web服务器的后台会校验User-Agent,或者其他的信息。你只需要在你的header中写入就可以了。这个时候后台就会为你的返回正常的网页信息。第一步到此结束,我们获取了正常的网页内容。

第二步:对数据进行提取。这里需要我们使用到正则表达式。学习地址如下:

https://www.runoob.com/python/python-reg-expressions.html

比如我们获取网页内容之后需要提取网页中的图片。

img
我们发现图片的链接是以https开头,jpg结尾。这个时候我们就可以利用正则表达则从网页中提取这些链接。这个时候第二步我们就完成了。如果你觉得正则表达式很麻烦的话推荐你使用beautifulsoup。专为爬虫而生,快速提取网页内容。

第三步:保存内容,如果我们在第二步提取的内容是网页的文字,我们可以直接将其写入我们的本地文件,或者写入数据库。如果是图片呢?

import urllib
imgUrl = 'http://xxx.jpg'
save_path = '/image/xxx.jpg'
f = urllib.urlopen(imgUrl)
with open(save_path, "wb") as code:
code.write(f.read())

致此全文结束。由于篇幅过长省略了一部分内容。只需按照上述步骤,即可完成非登录网页爬虫的编写。

0经验0基础,怎样学技术赚钱?

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。
python兼职资源+python全套学习资料

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

五、Python练习题

检查学习结果。
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

猜你喜欢

转载自blog.csdn.net/m0_59162248/article/details/130359496