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

爬虫1 实例

时间:2020-04-27 11:40:04      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:变化   输入   from   with   获取   useragent   获取网页   拷贝   参数变量   

目标:拷贝贴吧前几页HTML并保存到本地.html文件中

步骤:

  1. 创建动态可变化的url,用来循环访问不同页面。(a. args={‘key‘: ‘value‘}, 来自定义url中的动态参数;b. 使用urllib.parse下的urlencode模块来对动态参数进行转码,防止中文报错)

  2. 使用urllib.request 下的Request模块调用url并创建请求对象,重新封装请求头等信息。

  3. 使用urllib.request下的urlopen模块发送请求,并获取响应值。 .read()读取返回数据。

  4. 使用with open(‘filename‘, ‘wb‘)as f: ------ f.write(响应值.read())来保存数据到文件。

 

"""实例: 下载‘尚学堂’贴吧前几页内容"""

from urllib.request import Request, urlopen
from urllib.parse import urlencode
from fake_useragent import UserAgent



# 获取贴吧网页信息
def get_html(url):
    headers = {
        "User-Agent": UserAgent().chrome        # 获取任意一个版本的谷歌的UserAgent信息
    }
    print(----------, url)
    request = Request(url, headers=headers)
    response = urlopen(request)
    # print(response.read().decode())

    return response.read()


# 保存数据
def save_html(data_bytes, filename):
    with open(filename, wb) as f:      # wb保存,ab追加保存
        print(文件{}保存中....format(filename))
        f.write(data_bytes)
        

# 主函数
def main():
    # 创建参数变量
    teiba_name = input("请输入要下载的贴吧名称: ")
    num = input("要下载的页数: ")
    for i in range(int(num)):
        args = {
            
            kw: teiba_name,       # 贴吧名称
            pn: i*50              # 计算--参数pn(每页显示多少条,会影响pn的值,此处每页显示50条信息)
        }
        # 确定url中的变量:pn、kw, (ie是不变的)
        """
        url 示例
        url = ‘https://tieba.baidu.com/f?kw=%E5%B0%9A%E5%AD%A6%E5%A0%82&ie=utf-8&pn=100‘
        """
        url = "https://tieba.baidu.com/f?ie=utf-8&{}".format(urlencode(args))
        
        # 调用获取网页信息函数
        data_bytes = get_html(url)
        
        # 保存数据
        filename = teiba_name + "" + str(i+1) + "页.html"
        save_html(data_bytes, filename)

        
if __name__ == __main__:
    main()

 

爬虫1 实例

标签:变化   输入   from   with   获取   useragent   获取网页   拷贝   参数变量   

原文地址:https://www.cnblogs.com/leafchen/p/12785337.html

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