requests入门简单爬虫

爬虫的仨步骤
1.爬取网页
2.数据提取/保存
3.预处理

需求:运用requests实现百度贴吧自定义获取指定页面
任意打开一个吧

https://tieba.baidu.com/f?kw=python&ie=utf-8&pn=50

关键在于找到数据的接口
多翻几页分析发现最后得url

url = 'https://tieba.baidu.com/f?kw=' + 搜索内容 + '&pn=' + 页码'

且这个页码n pn = 50*(n-1)
这个简单代码如下

import requests


def search(url, kw, page):
    '''
    :param url: 爬虫url
    :param kw: 搜索吧名
    :param page: 搜索的页码
    :return: 无
    '''
    response = requests.get(url)
    content = response.content.decode('utf-8')
    html = kw + "第" + str(page) + "页" + ".html"

    with open(html, 'w', encoding='utf-8') as f:
        f.write(content)


if __name__ == '__main__':
    while True:
        kw = input("请输入要搜索的贴吧:")
        page = int(input("请输入要搜索的页码:"))
        pn = str(50 * (page - 1))
        url = 'https://tieba.baidu.com/f?kw=' + kw + '&pn=' + pn
        search(url, kw, page)
        Q = input("输入Q开始搜索并退出,任意字符继续搜索:")
        if Q == "Q":
            break

伪装成浏览器,可以直接复制当前浏览器的User-Agent,也可以如下随机生成

from fake_useragent import UserAgent

ua = UserAgent()
headers = {'User-Agent': ua.random}

编码方法一般使用utf-8,若不成可以改为gbk,或者直接获取response.encoding

try:
	response.content.decode('utf-8')
except:
	response.content.decode('gbk')

当然也可以增加代理https://www.xicidaili.com/nn/免费代理ip网站

import requests

proxies = {
  'http': 'http://10.10.1.10:3128',
  'https': 'http://10.10.1.10:1080',
}

requests.get(url, proxies=proxies)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值