资讯专栏INFORMATION COLUMN

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

huaixiaoz / 672人阅读

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

学习网站:麦子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
  • 从爬虫到机器学习预测,我是如何一步一步做到的?

    摘要:数据分析实战北京二手房房价分析数据分析实战北京二手房房价分析建模篇除了数据分析,好多朋友也对爬虫特别感兴趣,想知道爬虫部分是如何实现的。爬取目标是北京二手房,仅针对一个城市而言,数据量并不大。 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 showImg(https://segmentfault.com/img/remote/1460000016...

    Tamic 评论0 收藏0
  • Python爬虫视频教程

    摘要:第章第周网络爬虫之前奏第节网络爬虫课程内容导学第部分全课程内容导学第部分全课程内容导学单元学习资料第节语言开发工具选择第部分语言开发工具选择第章第一周网络爬虫之规则第节本周课程导学第部分第一周内容导学第节单元库入门第部分库的安装第部分库的方 ├─第1章_【第0周】网络爬虫之前奏│ ├─第1节_网络爬虫课程内容导学│ │ 第1部分_全课程内容导学.mp4│ │ ...

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

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

    Harriet666 评论0 收藏0
  • 【虫术】资深爬虫师带你爬取代理IP

    摘要:返回结果如下,接下来我们便开始爬取西刺代理,首先我们打开浏览器查看网页,并找到和端口元素的信息。爬取代理地址,代理的是西刺代理去掉可能重复的等待秒将要爬取页数的爬取好后存入数组,然后再对其中的逐一测试。 有时候在网站看小说,会莫名跳出来一个疑似机器恶意爬取,暂时无法访问这样类似的网站提示,需要刷新一下或者输入一个验证码才能重新进入,这样的情况偶有发生,相信大家都有遇到过。出现这个现象的...

    aristark 评论0 收藏0

发表评论

0条评论

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