爬虫小白第一篇 西刺代理

这篇博客介绍了Python爬虫新手如何获取和验证西刺代理IP。通过urllib.request模块,设置代理header来解决503错误,使用chardet判断HTML编码,再用BeautifulSoup解析提取IP。接着介绍如何验证代理IP的有效性,通过urllib.request添加代理并请求特定网址,根据异常判断代理是否可用。最后,将有效代理IP保存到本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬取西刺代理流程图

这里写图片描述

背景

  1. 环境:python3.6
  2. 模块:
    1. urllib.request(获取html)
    2. chardet(判断html的编码)
    3. bs4.Beautiful(提取代理IP)
  3. github地址(https://github.com/tonyxinminghui/spider/blob/master/xici_spider.py)

获取html

难点
  1. 选择用什么模块获取html
  2. 西刺代理的网址不伪造header是无法获取正确的html的。一般会返回503
  3. python3内存中字符串的编码是Unicode的形式,我们一般获取的html都是编码过的,我们需要解码。
  4. 3引出4,如何判断html的编码。
解决方案
  1. 由于自己异常稀少的知识储量,选择了urllib.request(PS:网上大家都说requests是为人类写的模块,很多方法名都很人性化,可惜我不是很熟悉,以后有机会可以,用request重写一下。)

  2. 有关伪造header,urllib.request中相关的接口是
    class urllib.request.Request(url[, data][, headers][, origin_req_host][, unverifiable])
    这里列一下header的形式,具体接口参数,详见参考

    forged_header = {
    'User-Agent': XXXX,
    'Referer'   : XXXX,
    'Host'      : spider_data['host'],
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值