requests模块学习

Posted leisurelyrd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests模块学习相关的知识,希望对你有一定的参考价值。

import requests

url = https://item.jd.com/2967929.html

try:
    r = requests.get(url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[:1000])
except:
    print("抓取失败")

抓jd产品页面信息^

 

import requests

url = https://www.amazon.cn/gp/product/B01M8L5Z3Y

try:
    kv = {user-agent:Mozilla/5.0}
    r = requests.get(url,headers = kv)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[1000:2000])
except:
    print("抓取失败")

抓z产品页面信息,较jd页面,加入headers参数,意在说明,有些网站屏蔽程序访问页面。^

 

import requests

keyword = Python

try:
    kv = {wd:keyword}
    r = requests.get(http://www.baidu.com/s,params=kv)
    # 百度搜索URL一般为:http://www.baidu.com/s?wd=关键字
    # params参数加了“?wd=Python",现在(20200225)还需参考z产品页面抓取示例,百度也有屏蔽user-agent为python
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("抓取失败")

通过代码提交关键字搜索,并抓取页面,上文注释具体情况如下:^

 print(r.request.headers)

#{‘User-Agent‘: ‘python-requests/2.22.0‘, ‘Accept-Encoding‘: ‘gzip, deflate‘, ‘Accept‘: ‘*/*‘, ‘Connection‘: ‘keep-alive‘}

r = requests.get(‘http://www.baidu.com/s‘,params=kv)
改为:
r = requests.get(‘http://www.baidu.com/s‘,headers={‘user-agent‘:‘Mozilla/5.0‘}params=kv)

 

import requests
import os
url = http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg
root = "D://pics//"
path = root +url.split(/)[-1]
try:
    if not os.path.exists(root):
        os.mkdir(root)
    if not os.path.exists(path):
        r = requests.get(url)
        with open(path,wb) as f:
            f.write(r.content)  # 写二进制文件内容
            f.close()
            print(保存文件成功)
    else:
        print(文件已存在)
except:
    print("抓取失败")

保存国家地理杂志网站的一幅图片^

 

import requests
import re

c = re.compile(r"<li>(.*?)</li>")   # 非贪婪模式

url = http://www.ip138.com/iplookup.asp?ip=
try:
    r = requests.get(url + 202.204.80.112 + &action=2,headers={User-Agent:Mozilla/5.0})  # url较教程做了调整
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    cMatch = c.search(str(r.text))
    print(cMatch.group(1))
except:
    print("抓取失败")

地址所属地查询^,比嵩天老师的代码多了re表达式,直接匹配出结果

D:python_workvenvScriptspython.exe D:/python_work/test.py
本站数据:北京市海淀区 北京理工大学 教育网

Process finished with exit code 0

 

以上是关于requests模块学习的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第八篇:requests 库学习

Python学习第八篇:requests 库学习

Python学习第八篇:requests 库学习

Motan在服务provider端用于处理request的线程池

入门学Python一定要知道的requests模块安装及使用

Python 常用模块学习