【爬虫】爬取百度贴吧数据

在这里我们写一个简单的小爬虫程序,爬取百度贴吧前几页的数据。

import requests
import sys

class Tieba(object):  
def __init__(self, name, pn):
    self.name = name  
    self.headers = {       #requests请求的时候一定要带上headers  请求头
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    }
    #kw{ }=.format(parems)  是一种拼接数据的方式   会把format里面的参数传递给 kw{}里面
    self.base_url = "http://tieba.baidu.com/f?kw={}&pn=".format(self.name)
    self.url_list = [self.base_url + str(i*50)for i in range(pn)]   #使用列表生成式,构建 url列表

def get_data(self, url):
    response = requests.get(url, headers=self.headers)
    return response.content

def save_data(self, data, index):
    # 组装文件名   再次用到  format格式
    filename = self.name + "_{}.html".format(index)

    with open(filename, 'wb')as f:
        f.write(data)

def run(self):
    # run中写爬取思路
    # 构建请求头
    # 构建url列表
    # 遍历url列表,对每一个url发起请求获取响应
    for url in self.url_list:
        data = self.get_data(url)
        # 将响应保存
        index = self.url_list.index(url)
        self.save_data(data, index)

接线来,开始main主函数启动,调用其他函数

if name == 'main':
      #input是一种方法          
    word = sys.argv[1]   #sys接收参数  就是从控制台 console获取数据
    pn = sys.argv[2]  
    tieba = Tieba(word, int(pn))
    tieba.run()

你可能感兴趣的:(【Python爬虫】)