最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼

 更新時(shí)間:2019年02月22日 10:14:54   作者:Money多多  
今天小編就為大家分享一篇關(guān)于Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

分析

需求:

爬取西刺代理網(wǎng)免費(fèi)高匿代理,并保存到MySQL數(shù)據(jù)庫(kù)中。

這里只爬取前10頁(yè)中的數(shù)據(jù)。

思路:

  1. 分析網(wǎng)頁(yè)結(jié)構(gòu),確定數(shù)據(jù)提取規(guī)則
  2. 創(chuàng)建Scrapy項(xiàng)目
  3. 編寫(xiě)item,定義數(shù)據(jù)字段
  4. 編寫(xiě)spider,實(shí)現(xiàn)數(shù)據(jù)抓取
  5. 編寫(xiě)Pipeline,保存數(shù)據(jù)到數(shù)據(jù)庫(kù)中
  6. 配置settings.py文件
  7. 運(yùn)行爬蟲(chóng)項(xiàng)目

代碼實(shí)現(xiàn)

items.py

import scrapy
class XicidailiItem(scrapy.Item):
  # 國(guó)家
  country=scrapy.Field()
  # IP地址
  ip=scrapy.Field()
  # 端口號(hào)
  port=scrapy.Field()
  # 服務(wù)器地址
  address=scrapy.Field()
  # 是否匿名
  anonymous=scrapy.Field()
  # 類(lèi)型
  type=scrapy.Field()
  # 速度
  speed=scrapy.Field()
  # 連接時(shí)間
  connect_time=scrapy.Field()
  # 存活時(shí)間
  alive_time=scrapy.Field()
  # 驗(yàn)證時(shí)間
  verify_time=scrapy.Field()

xicidaili_spider.py

# !/usr/bin/env python
# -*- coding:utf-8 -*-
import scrapy
from myscrapy.items import XicidailiItem
class XicidailiSpider(scrapy.Spider):
  name = 'xicidaili'
  allowed_domains=['www.xicidaili.com']
  # start_urls=['http://www.xicidaili.com/nn/1']
  def start_requests(self):
    urls=[]
    for i in range(1,11):
      urls.append('http://www.xicidaili.com/nn/'+str(i))
    for url in urls:
      yield scrapy.Request(url,callback=self.parse,method='GET')
  def parse(self, response):
    tr_list=response.xpath('//table[@id="ip_list"]/tr')
    for tr in tr_list[1:]: # 過(guò)濾掉表頭行
      item=XicidailiItem()
      item['country']=tr.xpath('./td[1]/img/@alt').extract_first()
      item['ip']=tr.xpath('./td[2]/text()').extract_first()
      item['port']=tr.xpath('./td[3]/text()').extract_first()
      item['address']=tr.xpath('./td[4]/a/text()').extract_first()
      item['anonymous']=tr.xpath('./td[5]/text()').extract_first()
      item['type']=tr.xpath('./td[6]/text()').extract_first()
      item['speed']=tr.xpath('./td[7]/div/@title').re(r'\d{1,3}\.\d{0,}')[0]
      item['connect_time']=tr.xpath('./td[8]/div/@title').re(r'\d{1,3}\.\d{0,}')[0]
      item['alive_time']=tr.xpath('./td[9]/text()').extract_first()
      item['verify_time']=tr.xpath('./td[10]/text()').extract_first()
      yield item

pipelines.py

class XicidailiPipeline(object):
  """
  西刺代理爬蟲(chóng) item Pipeline
  create table xicidaili(
    id int primary key auto_increment,
    country varchar(10) not null,
    ip varchar(30) not null,
    port varchar(10) not null,
    address varchar(30) not null,
    anonymous varchar(10) not null,
    type varchar(20) not null,
    speed varchar(10) not null,
    connect_time varchar(20) not null,
    alive_time varchar(20) not null,
    verify_time varchar(20) not null);
  """
  def __init__(self):
    self.connection = pymysql.connect(host='localhost',
                     user='root',
                     password='123456',
                     db='mydb',
                     charset='utf8', # 不能用utf-8
                     cursorclass=pymysql.cursors.DictCursor)
  def process_item(self,item,spider):
    with self.connection.cursor() as cursor:
      sql='insert into xicidaili' \
        '(country,ip,port,address,anonymous,type,speed,connect_time,alive_time,verify_time) values' \
        '(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);'
      args=(item['country'],item['ip'],item['port'],item['address'],item['anonymous'],item['type'],item['speed'],item['connect_time'],item['alive_time'],item['verify_time'])
      spider.logger.info(args)
      cursor.execute(sql,args)
    self.connection.commit()
  def close_spider(self,spider):
    self.connection.close()

settings.py

ITEM_PIPELINES = {
  'myscrapy.pipelines.XicidailiPipeline': 300,
}

結(jié)果

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • 在Django中使用ElasticSearch

    在Django中使用ElasticSearch

    這篇文章主要介紹了在Django中使用ElasticSearch,Elasticsearch是基于Lucene庫(kù)的搜索引擎。它提供了具有HTTP?Web界面和無(wú)模式JSON文檔的分布式,多租戶(hù)功能的全文本搜索引擎,下面詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-01-01
  • python?opencv圖像的高通濾波和低通濾波的示例代碼

    python?opencv圖像的高通濾波和低通濾波的示例代碼

    這篇文章主要介紹了python?opencv圖像的高通濾波和低通濾波,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python多線程共享變量的使用和效率方法

    python多線程共享變量的使用和效率方法

    今天小編就為大家分享一篇python多線程共享變量的使用和效率方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 使用Python操作excel文件的實(shí)例代碼

    使用Python操作excel文件的實(shí)例代碼

    這篇文章主要介紹了使用Python操作excel文件的實(shí)例代碼,需要的朋友可以參考下
    2017-10-10
  • Python何時(shí)應(yīng)該使用Lambda函數(shù)

    Python何時(shí)應(yīng)該使用Lambda函數(shù)

    這篇文章主要介紹了Python何時(shí)應(yīng)該使用Lambda函數(shù),Python 中定義函數(shù)有兩種方法,一種是用常規(guī)方式 def 定義,函數(shù)要指定名字,第二種是用 lambda 定義,不需要指定名字,稱(chēng)為 Lambda 函數(shù),需要的朋友可以參考下
    2019-07-07
  • 10行Python代碼就能實(shí)現(xiàn)的八種有趣功能詳解

    10行Python代碼就能實(shí)現(xiàn)的八種有趣功能詳解

    Python憑借其簡(jiǎn)潔的代碼,贏得了許多開(kāi)發(fā)者的喜愛(ài),因此也就促使了更多開(kāi)發(fā)者用Python開(kāi)發(fā)新的模塊。面我們來(lái)看看,我們用不超過(guò)10行代碼能實(shí)現(xiàn)些什么有趣的功能吧
    2022-03-03
  • Python讀取配置文件-ConfigParser的二次封裝方法

    Python讀取配置文件-ConfigParser的二次封裝方法

    這篇文章主要介紹了Python讀取配置文件-ConfigParser的二次封裝方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 通過(guò)python獲取甲流分布數(shù)據(jù)

    通過(guò)python獲取甲流分布數(shù)據(jù)

    近期,多地學(xué)校出現(xiàn)因甲流導(dǎo)致的班級(jí)停課,兒科甲流患者就診量呈數(shù)倍增長(zhǎng),今天我們同樣的操作來(lái)獲取下現(xiàn)在甲流感染的數(shù)據(jù),需要的朋友可以參考下
    2023-03-03
  • python數(shù)字圖像處理之圖像簡(jiǎn)單濾波實(shí)現(xiàn)

    python數(shù)字圖像處理之圖像簡(jiǎn)單濾波實(shí)現(xiàn)

    這篇文章主要為大家介紹了python數(shù)字圖像處理之圖像簡(jiǎn)單濾波實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼

    用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼

    這篇文章主要介紹了用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的驗(yàn)證碼的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論

绵竹市| 肃南| 县级市| 客服| 甘洛县| 唐河县| 电白县| 娄烦县| 巴东县| 朝阳市| 攀枝花市| 铜陵市| 黄大仙区| 古交市| 阳原县| 锡林郭勒盟| 泸定县| 体育| 吉林省| 科技| 沧州市| 普定县| 澄城县| 青神县| 东安县| 湘西| 北京市| 涪陵区| 德安县| 宁德市| 依兰县| 广河县| 阿勒泰市| 宾川县| 政和县| 乌什县| 利川市| 西城区| 扬州市| 盐源县| 永春县|