网络爬虫笔记1, requests库入门

1. 安装python3

https://www.python.org/

2. 安装pycharm 社区版

http://www.jetbrains.com/pycharm/

3. 安装anaconda

https://www.anaconda.com/download/

4. 在pycharm中,设置编译器,并添加安装requests包。

网络爬虫笔记1, requests库入门

5.打开ipython,实验第一个程序

import requests
r = requests.get("http://www.baidu.com")
r.status_code  //查看状态码,//返回200,表示查看成功

r.encoding = 'utf-8'

r.text    //输出网页

网络爬虫笔记1, requests库入门

6. requests库基础

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

def get(url, params=None, **kwargs):
    kwargs.setdefault('allow_redirects',True)

    return requrest('get',url,params=params,**kwargs)

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

Response对象

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

爬取网页的通用代码框架

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

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, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

无状态:每次操作独立,当前操作不依赖于前面操作的状态

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络爬虫笔记1, requests库入门

网络连接有风险,异常处理很重要

实验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("爬取失败")

网络爬虫笔记1, requests库入门

实验二: 爬取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搜索关键词提交