初探Python网络爬虫——Requests库

初探Python网络爬虫——Requests库

首先打开cmd,输入pip install requests,下载requests库

>>> import requests
>>> r=requests.get("http://www.baidu.com")
>>> r.status_code
200
>>> r.encoding='utf-8'
>>> r.text

1. r=requests.get(URL)构造一个向服务器请求资源的Request对象,并返回一个包含服务器资源的Response对象

2. r.status_code:HTTP请求返回的状态,200表示成功,404表示失败

3. r.text:URL对应的页面内容

4. r.encoding:网页的编码方式

5. r.content:HTTP相应内容的二进制格式

爬取网页的通用代码框架

import requests
def getHTMLText(url):
    try:
        r=requests.get(url,timeout=300)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return '产生异常'


if __name__=="__main__":
    url="http://www.baidu.com"
    #url可以为任意网址(*....emmmmm')
    print(getHTMLText(url))
        

实例1:爬取京东商品信息

  1. 我们先上京东官网,找一件商品信息,此文以iPhone XS Max为例:
    初探Python网络爬虫——Requests库

代码

import requests
url="https://item.jd.com/100000287117.html"
try:
    r=requests.get(url)
    r.raise_for_status
    r.encoding=r.apparent_encoding
    print(r.text[:1000])
except:
    print("爬取失败")

运行结果

初探Python网络爬虫——Requests库

实例2:百度搜索关键词提交

初探Python网络爬虫——Requests库

import requests
keyword="Python" #搜索关键词
try:
    kv={'wd':keyword} #键值对
    r=requests.get("http://www.baidu.com/s",params=kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
    r.encoding=r.apparent_encoding
    print(type(r))
except:
    print("爬取失败")

运行截图
初探Python网络爬虫——Requests库

requests.get(url,params=None,**kwargs)

kwargs:控制访问的参数,均为可选项
params:字典或字节序列,作为参数增加到URL中