资讯专栏INFORMATION COLUMN

scrapy简单学习4—西刺Ip的爬取

huaixiaoz / 765人阅读

摘要:学习网站麦子第九集的定义的编写作用生成初始的定义空集设置变量页码到生成的放到中返回提取每一行的位置提取标签下的属性变量加入标签定义空集的从以后开始加载取文字取文字取到的属性,再用正则匹配到数字把添加到项目返回项目保存成结果输出

学习网站:麦子scrapy第九集

1.item.py的定义
import scrapy


class XiciItem(scrapy.Item):
    IP=scrapy.Field()
    PORT=scrapy.Field()
    POSITION=scrapy.Field()
    TYPE=scrapy.Field()
    SPEED=scrapy.Field()
    LAST_CHECK_TIME=scrapy.Field()
2.spider的编写
# -*- coding: utf-8 -*-
import scrapy
from XiCi.items import XiciItem

class XiciSpider(scrapy.Spider):
    name = "xici"
    allowed_domains = ["xicidaili.com"]
    start_urls = (
        "http://www.xicidaili.com",
    )
    
    def start_requests(self):#作用:生成初始的request
        reqs=[]#定义resqs(空集)
        
        for i in range(1,206):#设置变量:页码1到206
            req=scrapy.Request("http://www.xicidaili.com/nn/%s"%i)
            reqs.append(req)#生成的request放到resqs中
        
        return reqs#返回reqs
    
    def parse(self, response):
        #提取每一行的xpath位置
        ip_list=response.xpath("//table[@id="ip_list"]")#ip_list=xpath提取(table标签下的"ip_list"属性)
        
        trs = ip_list[0].xpath("tr")#变量trs=ip_list加入tr标签
        
        items=[]#定义items空集
        
        for ip in trs[1:]:#ip的tr从[1以后开始]
            pre_item=XiciItem()#pre_item=加载XiCiItem()
            
            pre_item["IP"] = ip.xpath("td[3]/text()")[0].extract()#取文字
            
            pre_item["PORT"] = ip.xpath("td[4]/text()")[0].extract()#取文字
            
            pre_item["POSITION"] = ip.xpath("string(td[5])")[0].extract().strip()
            
            pre_item["TYPE"] = ip.xpath("td[7]/text()")[0].extract()
            #speed取到td的title属性,再用正则(匹配到数字)
            pre_item["SPEED"] = ip.xpath(
                "td[8]/div[@class="bar"]/@title").re("d{0,2}.d{0,}")[0]
                
            pre_item["LAST_CHECK_TIME"] = ip.xpath("td[10]/text()")[0].extract()
            
            items.append(pre_item)#把pre_item添加到项目
            
        return items#返回项目
3.保存成csv
scrapy crawl xici -o xici.csv
4.结果输出

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44163.html

相关文章

  • python爬虫实战:爬取西刺代理的代理ip(二)

    摘要:爬虫实战二爬取西刺代理的代理对于刚入门的同学来说,本次实战稍微有点难度,但是简单的爬取图片文本之类的又没营养,所以这次我选择了爬取西刺代理的地址,爬取的代理也能在以后的学习中用到本次实战用的主要知识很多,其中包括自动保存利用抓包工具获取和匹 爬虫实战(二):爬取西刺代理的代理ip 对于刚入门的同学来说,本次实战稍微有点难度,但是简单的爬取图片、文本之类的又没营养,所以这次我选择了爬...

    fsmStudy 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<