前言
Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程。爬虫的初级阶段,添加headers和ip代理可以解决很多问题。
思路:
- 爬取一些IP,过滤掉不可用.
- 在requests的请求的proxies参数加入对应的IP.
- 继续爬取.
- 收工
- 好吧,都是废话,理论大家都懂,下面直接上代码...
运行环境
Python 3.7, Pycharm
这些需要大家直接去搭建好环境...
准备工作
- 爬取IP地址的网站(国内高匿代理)
- 校验IP地址的网站
- 你之前被封IP的py爬虫脚本...
上面的网址看个人的情况来选取
爬取IP的完整代码
PS:简单的使用bs4获取IP和端口号,没有啥难度,里面增加了一个过滤不可用IP的逻辑
关键地方都有注释了
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/11/22
# @Author : liangk
# @Site :
# @File : auto_archive_ios.py
# @Software: PyCharm
import requests
from bs4 import BeautifulSoup
import json
class GetIp(object):
"""抓取代理IP"""
def __init__(self):
"""初始化变量"""
self.url = 'http://www.xicidaili.com/nn/'
self.check_url = 'https://www.ip.cn/'
self.ip_list = []
@staticmethod
def get_html(url):
"""请求html页面信息"""
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
}
try:
request = requests.get(url