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搜索关键词提交







Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐