[原创]Python爬虫必备之代理IP列表的构建

利用Python爬取代理IP并存入本地数据库

引入头部文件

import requests
from bs4 import BeautifulSoup
# 数据库操作package,具体根据个人习惯是存入数据库还是写入文件
from dboper.mysqloper import MysqlOper

定义必要的静态变量

# 目标网址 只爬取第一页的IP地址,定期爬取,防止失效
url = 'https://www.xicidaili.com/nn/'
# 定义头部
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
}

分析网页结构,并且编写爬取函数

# 爬取目标页面的IP列表
def get_proxy_list():
    response = ''
    try:
        # 获得页面文本
        response = requests.get(url, headers=headers, timeout=10)
    except requests.Timeout as e:
        print(e.args)

    soup = BeautifulSoup(response.text, 'html.parser')
    # 分析得知IP地址在id=ip_list的table中,根据网页调试得知
    content = soup.find('table', {'id': 'ip_list'})
    # 抓取所有的IP地址
    ip_list = content.find_all('tr')
	
	# 从数据库中删除过期的IP列表,该函数代码略
    del_ip_list()
    for idx, item in enumerate(ip_list):
        # 不处理表头
        if idx < 1:
            continue

        # 分别抓取IP、PORT、PROTOCOL
        ip = item.find_all_next('td')[1].text
        port = item.find_all_next('td')[2].text
        protocol = item.find_all_next('td')[5].text
        # print(protocol + '://' + ip + ':' + port)
        # 存入数据库,该函数代码略
        save_ip(protocol, ip, port)

调用函数

if __name__ == '__main__':
    get_proxy_list()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值