Python--爬取任意贴吧网页信息

Python–爬取任意贴吧网页信息并且保存在本地

提示:

①.需要提前使用pip安装requests库,或者pycharm自行安装,在py文件中能够入requests库即可。
②.本文可爬取任意贴吧,只需要加上你需要爬取的参数即可。
③.本文不做任何教学,只将代码附上,有需要学习的或者借鉴的从代码中自行学习!,介意勿看。


完整代码附上

"""
需求: 爬取任意贴吧的网页信息,并保存在本地。
"""
import requests
class Spider_Tieba:

    def __init__(self, tieba_name):
        self.tieba_name = tieba_name
        self.url = "https://tieba.baidu.com/f?kw=" + tieba_name + "&ie=utf-8&pn={}"
        self.headers = {
            "User-Agent": "Mozilla/5.0"}

    def get_url_list(self):  # 得到需要爬取的所有贴吧url,放到列表中
        url_list = []
        for i in range(50):  #*****此处50意味着我设定爬取五十页,您可以按照自己需求修改
            url_list.append(self.url.format(i * 50))
        return url_list

    def parse_url(self, url): # 发送请求,得到相应信息
        print(url)
        response = requests.get(url, headers=self.headers)
        print(response.status_code)
        return response.content.decode()

    def save_html(self, html_str, page_num):    # 保存在本地

        file_path = "{}-第{}页.html".format(self.tieba_name, page_num)
        with open(file_path, "w", encoding="utf-8") as f:
            f.write(html_str)

    def run(self):   # 链接所有函数,实现主要逻辑
        # 1. 构造url列表
        url_list = self.get_url_list()

        # 2. 请求并回应
        for url in url_list:
            html_str = self.parse_url(url)

            # 3. 保存在本地
            page_num = url_list.index(url) + 1
            self.save_html(html_str, page_num)


if __name__ == '__main__':
    spider_tieba = Spider_Tieba("上海交通大学")   #*****此处是我传入的参数,即:我想要爬取信息是“上海交通大学”,您也可以修改。

    spider_tieba.run()

效果图

Python--爬取任意贴吧网页信息_第1张图片
注意:
①:此代码不能保证一直能够爬取,因为url地址及规律会变化。最后一次执行时间为:2021-12-04

②:若不能执行私信我,我会更新一下内容!


你可能感兴趣的:(python,开发语言,后端)