美文网首页
抓取西刺代理IP+验证是否可用+存储mongodb

抓取西刺代理IP+验证是否可用+存储mongodb

作者: 拾柒丶_8257 | 来源:发表于2018-10-15 20:59 被阅读0次

spider文件的代码:

import scrapy

import requests #用于测试抓取过来的IP是否可用

class XiciSpider(scrapy.Spider):

name = "xici"

allowed_domains = ["xicidaili.com",]

def start_requests(self):

urls = ["http://www.xicidaili.com/nn/1/",

"http://www.xicidaili.com/nn/2",

      ]

for url in urls:

yield scrapy.Request(url,callback=self.parse)

def parse(self,response):

table = response.xpath("//table[@id='ip_list']")[0] #定位那个装满IP的大框

trs = table.xpath("//tr")[1:] #过滤掉第一行的标题栏  国家 IP地址 端口 服务器地址 是否匿名 类型 速度 连接时间 存活时间 验证时间

for tr in trs:

pagetest = "http://www.baidu.com.cn/" #用于测试的网页

ip = tr.xpath("td[2]/text()").extract()[0]

port = tr.xpath("td[3]/text()").extract()[0]

PROXY = "http://" + ip + ":" + port

proxies = {

"http":PROXY

}

try:

response = requests.get(pagetest,timeout=1,proxies=proxies)

print(response.status_code)

if response.status_code == 200: #判断返回的状态代码来判断IP是否可用

yield {

'ip':ip,

'port':port,

}

except:

print("connect failed!")

items.py代码:

import scrapy

class ScrapeipItem(scrapy.Item):

ip = scrapy.Field()

port = scrapy.Field()

pipeline.py代码: #存储在mongodb中,用于IP轮寻

import pymongo

import json

from scrapeIP import items

class ScrapeipPipeline(object):

def process_item(self, item, spider):

client = pymongo.MongoClient(host='127.0.0.1', port=12345)

db = client['ip']

coll = db['sheet']

if coll.find({'ip':item['ip']}).count() <= 1:    #用于判重,考虑代理IP的不稳定性,所以放宽条件了

coll.insert_one(item)

settings.py代码:

BOT_NAME = 'scrapeIP'

SPIDER_MODULES = ['scrapeIP.spiders']

NEWSPIDER_MODULE = 'scrapeIP.spiders'

# Crawl responsibly by identifying yourself (and your website) on the user-agent

#USER_AGENT = 'scrapeIP (+http://www.yourdomain.com)'

USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'

# Obey robots.txt rules

ROBOTSTXT_OBEY = True

COOKIES_ENABLED = False

AJAXCRAWL_ENABLED = True

ITEM_PIPELINES = {

    'scrapeIP.pipelines.ScrapeipPipeline':400,

}

相关文章

  • 抓取西刺代理IP+验证是否可用+存储mongodb

    spider文件的代码: import scrapy import requests #用于测试抓取过来的IP是否...

  • Python 学习记录1

    从豆瓣网下载整个相册的图片 从西祠代理网站爬取免费高匿ip 西祠代理 验证抓取的IP是否可用 建立代理IP池 抓...

  • 代理验证器

    一、验证器从西刺爬取第一页,约100个代理,按照HTTP和HTTPS归类存储在属性里,多线程验证,将结果存储在验证...

  • 西刺免费代理IP爬取(1)

    西刺免费代理IP获取API接口无法访问,先尝试获取一下ip信息,后续需要验证下ip可用性,创建自有代理ip池。

  • 0110编程-Python的Requests的图片抓取和代理使用

    点击这里进入人工智能嘚吧嘚目录,观看全部文章 图片抓取与存储 注意文件名和存储位置。 代理使用 可以使用西刺免费代...

  • 爬虫常用代码

    去除字符串中的空值 &\xa0。 爬虫时防止IP访问限制 查看IP是否可用 获取 西刺 随机IP 获取 快代理 I...

  • 微信爬虫实战

    目录 原理难点思路实现 实战代理微信抓取 经验 原理 难点 可用接口 突破鉴权 验证限流 思路 搜狗微信 典型的开...

  • HTML5 localStorage的本地存储验证方法封装

    使用场景,可用于一些数据验证,兼顾数据去重,存储的时候验证是否localStorage已经存储过此条数据,进而进行...

  • python抓取代理IP并多线程验证

    一、抓取代理IP 提供免费代理IP的网站还挺多的,我在‘西刺代理’上一阵猛抓后自己的IP就被其屏蔽了。只好换‘IP...

  • python爬取西刺代理所有数据 !

    今天来爬取西刺代理的所有数据,采用 mongoDB 储存。 首先分析网址构造,找出规律,这里我们可以看到,总共有 ...

网友评论

      本文标题:抓取西刺代理IP+验证是否可用+存储mongodb

      本文链接:https://www.haomeiwen.com/subject/vjuqzftx.html