码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫-requests用法

时间:2019-10-20 16:11:25      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:__init__   deb   rom   res   wow   get   图片   stat   获取   

中文文档 API: http://requests.kennethreitz.org/zh_CN/latest/

安装

pip install requests

获取网页

# coding=utf-8
import requests

response = requests.get(http://www.baidu.com)

# 第一种方式 获取响应内容
# 查看网页编码方式
print(response.encoding)
# 修改编码方式
response.encoding = utf-8
# 获取响应内容
print(response.text)

# 第二种方式 获取二进制响应内容

# 获取二进制响应内容
print(response.content)
# 解码 decode(‘解码方式‘) 默认时utf-8的方式
print(response.content.decode())# coding=utf-8
import requests

response = requests.get(http://www.baidu.com)

# 第一种方式 获取响应内容
# 查看网页编码方式
print(response.encoding)
# 修改编码方式
response.encoding = utf-8
# 获取响应内容
print(response.text)

# 第二种方式 获取二进制响应内容

# 获取二进制响应内容
print(response.content)
# 解码 decode(‘解码方式‘) 默认时utf-8的方式
print(response.content.decode())

保存图片

import requests

response = requests.get(http://requests.kennethreitz.org/zh_CN/latest/_static/requests-sidebar.png)
# 保存图片
with open(a.png,wb) as f:
    f.write(response.content)

获取状态码以及判断请求是否成功

import requests
r = requests.get(http://www.baidu.com)
# 获取状态码
print(r.status_code)  # 获取到200不一定成功 可能获取的时跳转之后的页码
# 断言 判断请求是否成功
assert r.status_code==200  # 如果成功 没有任何反应 失败会报错

# 获取响应header
print(r.headers)
# 获取请求header
print(r.request.headers)

# 获取请求url
print(r.request.url)
# 获取响应的url
print(r.url)

带header头伪装浏览器爬取内容

import requests
# 模拟header头
headers = {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36}
# 获取网页
r = requests.get(http://www.baidu.com,headers=headers)
# 获取响应内容
print(r.text)

爬取贴吧内容

import requests

class WebSpider():
    def __init__(self, name):
        self.headers = {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36}
        self.url_temp = "http://tieba.baidu.com/f?kw="+ name +"&ie=utf-8&pn={}"
        self.name = name

    # 构建地址列表
    def get_url_list(self):
        return [self.url_temp.format(i*50) for i in range(1000)]

    # 获取贴吧内容
    def parse_url(self, url):  #爬取数据
        print(url)
        r = requests.get(url, headers=self.headers)
        return r.content.decode()


    def run(self):
        # 获取地址列表
        urls = self.get_url_list()
        # 遍历 爬取数据
        for url in urls:
            html_str = self.parse_url(url)
            # 保存
            page_num = urls.index(url)+1  # 获取也码数
            file_name =  self.name + "第{}页.html".format(page_num)
            with open(file_name, "w", encoding="utf-8") as f:
                f.write(html_str)
if __name__ == __main__:
    r = WebSpider(input("请输入贴吧名字:"))
    r.run()

 

爬虫-requests用法

标签:__init__   deb   rom   res   wow   get   图片   stat   获取   

原文地址:https://www.cnblogs.com/yifengs/p/11707617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!