您的位置:首页 > 编程语言 > Python开发

python单线程爬虫(一)

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

安装pip到python2:

[code]python get-pip.py


安装到python3:

[code]python3 get-pip.py


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

安装requests

[code]pip3 install requests


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

入门例子

[code]import requests

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


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

把获取到的网页源代码保存到文本文件中:

[code]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

[code]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方法加入一个参数,变成:

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


再次运行就不会出现被服务器禁止的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: