网络爬虫笔记1, requests库入门
1. 安装python3 https://www.python.org/2. 安装pycharm 社区版http://www.jetbrains.com/pycharm/3. 安装anacondahttps://www.anaconda.com/download/4. 在pycharm中,设置编译器,并添加安装requests包。5.打开ipython,实验第一个程序import requests
1. 安装python3
https://www.python.org/
2. 安装pycharm 社区版
http://www.jetbrains.com/pycharm/
3. 安装anaconda
https://www.anaconda.com/download/
4. 在pycharm中,设置编译器,并添加安装requests包。
5.打开ipython,实验第一个程序
import requests
r = requests.get("http://www.baidu.com")
r.status_code //查看状态码,//返回200,表示查看成功
r.encoding = 'utf-8'
r.text //输出网页
6. requests库基础
def get(url, params=None, **kwargs):
kwargs.setdefault('allow_redirects',True)
return requrest('get',url,params=params,**kwargs)
Response对象
爬取网页的通用代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
无状态:每次操作独立,当前操作不依赖于前面操作的状态
网络连接有风险,异常处理很重要
实验1:爬取京东网。
import requests
url = "http://item.jd.com/10460106645"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失败")
实验二: 爬取amazon网
import requests
url = "https://www.amazon.cn/dp/B00RT6LB9W/ref=cngwdyfloorv2_recs_0?pf_rd_p=05f2b7d6-37ec-49bf-8fcf-5d2fec23a061&pf_rd_s=desktop-2&pf_rd_t=36701&pf_rd_i=desktop&pf_rd_m=A1AJ19PSB66TGU&pf_rd_r=TYTEFRZ086W1AQREBTFK&pf_rd_r=TYTEFRZ086W1AQREBTFK&pf_rd_p=05f2b7d6-37ec-49bf-8fcf-5d2fec23a061"
try:
kv = {'user-agent':'Mozilla/5.0'}
#此处把user-agent标志变更为合法的标准浏览器。因为有的网页会禁止爬虫访问。如果不修改,用r.request.headers 命令查看,则输出如下信息
#{'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
# 网站可能会设置 来自python的user-agent的访问。
#当修改后,再次用r.request.headers 命令查看,则会显示如下内容
#{'user-agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
r = requests.get(url,headers = kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取失败")
实验三 百度360搜索关键词提交
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)