python单线程爬虫(一)-阿里云开发者社区

开发者社区> 姚攀> 正文

python单线程爬虫(一)

简介: 学习了python的requests爬虫库,首先安装pip包管理工具,下载get-pip.py. 我的机器上安装的既有python2也有python3。
+关注继续查看

学习了python的requests爬虫库,首先安装pip包管理工具,下载get-pip.py. 我的机器上安装的既有python2也有python3。
安装pip到python2:

python get-pip.py

安装到python3:

python3 get-pip.py

pip安装完成以后,安装requests库开启python爬虫学习。

安装requests

pip3 install requests

我使用的python3,python2可以直接用pip install requests.

入门例子

import requests

html=requests.get("http://gupowang.baijia.baidu.com/article/283878")
html.encoding='utf-8'
print(html.text)

第一行引入requests库,第二行使用requests的get方法获取网页源代码,第三行设置编码格式,第四行文本输出。
把获取到的网页源代码保存到文本文件中:

import requests
import os

html=requests.get("http://gupowang.baijia.baidu.com/article/283878")
html_file=open("news.txt","w")
html.encoding='utf-8'
print(html.text,file=html_file)

设置headers

把上面的链接换成CSDN的一篇博客,发现得到网页的源文件并没有内容,而是403 Forbidden。
这里写图片描述
这是因为服务器设置导致拒绝访问,爬虫访问网页和浏览器访问网页有区别,区别就在于发生请求的时候还发送到有request header信息。随便打开一个网页,使用chrome开发者工具,点击network然后刷新一下重新访问。

这里写图片描述
要想不被服务器禁止,就模拟浏览器加上headers

head={'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4'}

get方法加入一个参数,变成:

html=requests.get("http://blog.csdn.net/napoay/article/details/50442354",headers=head)

再次运行就不会出现被服务器禁止的情况。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
FFLIB网络框架单线程0.0.1版本-epoll_socket
更新:      封装了epoll和socket,目前是单线程版本 问题:      对于epoll_wait操作,何时将会触发EPOLLERR?      服务器端close掉socket时候,如何保证EPOLLIN不会再触发,按理说close之后是不会有EPOLLIN,但是多线程时,有可能有EPOLLIN排在close后边      执行,那么什么时候才能确定epoll_wait中再也不会有事件到来?因为这时候才能干净的将socket 对象delete掉。
534 0
Python爬虫系列(一)初期学习爬虫的拾遗与总结
Python爬虫系列(一)初期学习爬虫的拾遗与总结
3285 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
8271 0
Redis:单线程模型效率为什么这么高,6.0为啥开始引入多线程
Redis:单线程模型效率为什么这么高,6.0为啥开始引入多线程
2250 0
Flutter 95: 图解 Dart 单线程实现异步处理之 Task Queue
0 基础学习 Flutter,第九十五节:学习一下 MicroTask 和 EventTask 任务调度!
234 0
基于python的Scrapy爬虫框架实战
基于python的Scrapy爬虫框架实战 2018年7月19日笔记 1.伯乐在线 网站页面如下图所示: 网站页面.png 1.1 新建爬虫工程 命令:scrapy startproject BoleArticle 新建爬虫工程命令 命令:scrapy genspider article "blog.jobbole.com" 注意:运行此命令时必须在爬虫工程文件夹内,如下图路径所示。
1246 0
+关注
姚攀
中国科学院大学硕士,《从Lucene到Elasticsearch:全文检索实战》一书作者
201
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《SaaS模式云原生数据仓库应用场景实践》
立即下载
文娱运维技术
立即下载
《看见新力量:二》电子书
立即下载