简单的python爬虫
什么是爬虫
我的理解:
- 爬虫就是机器模拟人的方式去访问网页,得到数据
Q: 人是怎么 访问网页 的?
A: 我们是使用的浏览器,而浏览器会 发出一个请求 (Request)到服务器,在服务器收到 Request 以后,服务器把相关的内容 (比如网页或其他什么) 返回(缓存)到本地,再之后浏览器再把这些缓存的内容 渲染 (解析) 成我们看得到的样子
所以 简单概括 一下,爬虫会向浏览器发出一个请求(Request),然后服务器把相关的内容返回到我们本地。
第一个简单的爬虫
这里以安徽省卫生健康委员会的网页为例,它就是我们今天的受害者
目标网页 http://wjw.ah.gov.cn/xwzx/gzdt/53195761.html
代码:
import requests as rq
url = "http://wjw.ah.gov.cn/xwzx/gzdt/53195761.html"
html = rq.get(url) # 这一行就完成了对这个网站的请求,并且获取了服务器的“反馈”,反馈内容在html封装在这个变量里面
简单爬虫 结束了
Q: 那有人就要问啦,你这个什么东西都没有,怎么就好了?
A: 啊,对,我理解的爬虫就已经结束了。
小问号可能有很多朋友?
Q: 那我不知道有没有成功啊?
A: 通过查看rq.get返回的对象的 一个属性 来判断是否成功
这个属性是status_code
几个常见的Http状态码
状态码 | 含义 |
---|---|
200 | 请求成功 |
400 | 请求无效 |
404 | 无法找到文件 |
500 | 服务器内部错误 |
如果你的status_code 是200 ,就表示 Request 成功了
那状态码看到了,怎么查看返回的内容呢?
status = html.status_code # 请求的状态码
webpage = html.text # 内容以文本形式展现
print(status)
print(webpage)
在输出文本的最后(其实开头也是),发现乱码了,是因为使用的文本编码方式不同。
在我们输出的文本的最前面,有个 < head > 的标签,这个标签是网页的头,里面会有很多关于网页的信息。
比如< meta charset=“utf-8” >表示文本内容编码方式是utf-8
< title > < /title>这段标签里的是网页的标题
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>6月1日安徽çœæŠ¥å‘Šæ–°å† 肺炎疫æƒ
æƒ
况_安徽çœå«ç”Ÿå¥åº·å§”员会</title>
<meta name="keywords" content="安徽çœå«ç”Ÿå¥åº·å§”员会">
<meta name="description" content="安徽çœå«ç”Ÿå¥åº·å§”员会">
所以呢,我们要把我们的html
设置成和网页一样的编码方式
html.encoding = 'utf-8'
这样我们看到的东西就不是乱码了
而我们通常看到的网页,其实就是webpage
这个变量的内容,就是这样的,浏览器根据这些标签把文本变成我们通常看到的样子
简单的爬虫到这里,就差不多了,之后就是对需要的内容进行筛选,留着下一次讲
这里是全部的代码
import requests as rq
url = "http://wjw.ah.gov.cn/xwzx/gzdt/53195761.html"
html = rq.get(url)
html.encoding = 'utf-8'
status = html.status_code
content = html.text
print(status)
print(content)
后面的内容也更新啦
简单的python(二)
有问题的童鞋可以留言