python 爬虫 之 requests

python爬虫

python爬虫使用的基本库之一:requests
首先,需要安装:pip install requests
安装之后就可以使用了
我们大多数情况下会使用requests.get(),或者requests.post(),来获得我们所需要的网页内容。
requests.get()是通过get请求来获得网页,requests.post()是通过post请求来获得网页内容的,需要传额外的参数哦!具体视你所需要的爬去的网页来确定。
此外,许多网页都有反爬虫机制,今天我们使用最简单的方法来规避一些反爬虫——就是设定User-Agent,这个可以通过浏览器来获得,打开一个网页,右键单击,点击检查元素,然后刷新网页,在network一栏中随意选择一条信息,如下图:在这里插入图片描述
右边会出现一些信息,选择headers,在里面寻找User-Agent,复制粘贴到程序中即可,在请求时传入,下面是一个下载百度贴吧的小爬虫

import requests
class TiebaSpider:
    def __init__(self,tieba_name_crawl):
        """
        完成初始化
        :param tieba_name_crawl:
        """
        self.tieba_name = tieba_name_crawl
        self.url_base = "http://tieba.baidu.com/f?kw=" + tieba_name_crawl + "&ie=utf-8&pn={}"
        self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"}
    def make_url_lists(self):
        """
        生成下载列表
        :return: 下载列表
        """
        return [self.url_base.format(i) for i in range(1,5)]

    def download_url(self,url_str):
        """
        使用requests get 方法下载指定页面,并返回页面结果
        :param url_str: 下载链接
        :return: 下载结果
        """
        result = requests.get(url_str,headers=self.headers)
        return result
    def save_result(self,result,page_num):
        """
        存储下载的内容
        :param result: 下载链接
        :param page_num: 对应的页码
        :return:
        """
        with open('tieba{}.html'.format(page_num), 'wb') as f:
            f.write(result.content)
        return 'ok'

if __name__ == '__main__':
    tieba = TiebaSpider('lol')
    url_strs = tieba.make_url_lists()
    for i in range(4):
        result = tieba.download_url(url_str=url_strs[i])
        page_num = i+1
        tieba.save_result(result,page_num= page_num)

猜你喜欢

转载自blog.csdn.net/oyjl19961216/article/details/82776349