贴吧爬取

# 你很厉害
# 把老师的代码改了
# 居然改成功了
# 代码意思是爬取贴吧篮球区
# 按页抓取

'''
http://tieba.baidu.com/f/index/forumpark?cn=%E7%AF%AE%E7%90%83&ci=277&
pcn=%E4%BD%93%E8%82%B2%E8%BF%B7&pci=275&ct=&st=new&pn=1

中文翻译为
https://tieba.baidu.com/f/index/forumpark?cn=篮球&ci=277&pcn=体育迷&pci=275&
ct=0&rn=20&pn=1

'''


# 以上绿色是你要爬取的第一页
# pn=1代表第一页

# 运行时输入篮球
# 在输入3
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
    }
    request = Request(url, headers=headers)
    response = urlopen(request)
    print(response.read().decode())
    return response.read()


def save_html(filename, html_bytes):
    with open(filename, "wb") as f:
        f.write(html_bytes)


def main():
    content = input("请输入要下载的内容:")
    pcn="体育迷"
    num = input("请输入要下载多少页:")
    base_url = "http://tieba.baidu.com/f/index/forumpark?{}"
    for pn in range(int(num)):
        #此处你可以在添加ci啊还有pcn啊
        #但没有必要
        #args就是传参数
        #你可以使其更丰富更精确但没必要
        #知道就行
        args = {
            "cn": content,
            "ci": 277,
            "pcn": pcn,
            "pci": 275,
            "ct": 0,
            "rn": 20,
            "pn": pn    
    }
        filename = "第" + str(pn + 1) + "页.html"
        args = urlencode(args)
        print("正在下载" + filename)
        # format针对base_url里的{}
        # 即加到{}里面
        html_bytes = get_html(base_url.format(args))
        save_html(filename, html_bytes)


if __name__ == '__main__':
    main()

上述两块代码是一起的
之前发文章只出现前半段代码,后半段不见了?
所以今天补上

你可能感兴趣的:(Python,Reptile,Python,爬虫)