首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取过期域名

抓取过期域名
EN

Stack Overflow用户
提问于 2016-03-07 21:19:24
回答 1查看 1.3K关注 0票数 3

我使用Scrapy抓取不同的网站,但实际上我的脚本跟踪每个网站,并添加到数据库的域名和后,我用PHP脚本检查过期的域名。

我希望有人能够帮助我改进我的脚本,因为实际的脚本没有为我的需要进行优化!

我不知道为什么,但是爬虫会立即跳到不同的网站上找到“开始网址”,如果脚本在跳到其他网站之前完成对第一个网站的扫描会更好。

在将域名添加到数据库之前,如何直接检查域名是否过期?

我的爬虫:

代码语言:javascript
复制
from scrapy.spiders import CrawlSpider, Rule
from dirbot.settings import *
from scrapy.linkextractors.lxmlhtml import LxmlLinkExtractor
from scrapy.item import Item, Field
from urlparse import urlparse

class MyItem(Item):
    url= Field()

class someSpider(CrawlSpider):
    name = 'expired'
    start_urls = ['http://domain.com']

    rules = (Rule(LxmlLinkExtractor(allow=()), callback='parse_obj', follow=True),)

    def parse_obj(self,response):
        item = MyItem()
        item['url'] = []
        for link in LxmlLinkExtractor(allow='/.com|.fr|.net|.org|.info/i',deny = '/.jp|facebook|amazon|wordpress|blogspot|free.|google|yahoo|bing|znet|stackexchange|twitter|wikipedia/i').extract_links(response):
            parsed_uri = urlparse(link.url)
            url = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
        insert_table(url)
EN

回答 1

Stack Overflow用户

发布于 2016-03-07 22:07:14

在您的代码中,可以检查响应代码,如下所示:

代码语言:javascript
复制
class someSpider(CrawlSpider):
name = 'expired'
start_urls = ['http://domain.com']

rules = (Rule(LxmlLinkExtractor(allow=()), callback='parse_obj', follow=True),)

def parse_obj(self,response):
    item = MyItem()
    item['url'] = []
    if response.status == 404:
        # Do if not available
        pass
    elif response.status == 200:
        # Do if OK
        insert_table(url)
        for link in LxmlLinkExtractor(allow='/.com|.fr|.net|.org|.info/i',deny = '/.jp|facebook|amazon|wordpress|blogspot|free.|google|yahoo|bing|znet|stackexchange|twitter|wikipedia/i').extract_links(response):
            parsed_uri = urlparse(link.url)
            url = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)

    elif response.status == 500:
        # Do if server crash
        pass

我添加了解析网站链接的代码,以防网站初始请求给你一个http 200OK响应码。

我希望它能帮上忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35844864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档