как использовать скрап с текстовым списком - PullRequest
0 голосов
/ 05 ноября 2019

Привет всем, я работал над новым проектом для преобразования ip в имя домена с помощью scrappy

Я не могу найти, как добавить текст списка (ip.txt) в мой начальный URL в scrappy, заменить (+ IP) напо текстовому списку

exepmle:

start_urls = [
    `"https://api.hackertarget.com/reverseiplookup/?q= + ip"`]

----------------------------------- МОЙ Код -----------------------------

# -*- coding: utf-8 -*-
import scrapy

lists = open(raw_input('IP list file name: '), 'r').read().split('\n')

class jeffbullasSpider(scrapy.Spider):
    name = "iptohost"
    allowed_domains = ["api.hackertarget.com"]
    start_urls = [
    "https://api.hackertarget.com/reverseiplookup/?q=" + str(lists) ] 

    def parse(self, response):
       print response.xpath('//body//text()').get()

(я новичокна питоне, большое спасибо.)

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

У меня есть другая проблема: я добавил прокси-ротацию при копировании, и после того, как я сохранил эту команду:

scrapy crawl iptohost -o some.json -t json &> some.text

мой результат не содержит только мой домен, содержит результат прокси и мой домен результата

мой результат

    2019-11-10 10:39:50 [rotating_proxies.expire] DEBUG: Proxy <http://197.157.219.25:8080> is DEAD
2019-11-10 10:39:50 [rotating_proxies.middlewares] DEBUG: Retrying <GET https://api.hackertarget.com/reverseiplookup/?q=61.112.2.178> with another proxy (failed 4 times, max retries: 5)
2019-11-10 10:39:50 [rotating_proxies.expire] DEBUG: Proxy <http://139.59.99.119:8080> is DEAD
2019-11-10 10:39:50 [rotating_proxies.middlewares] DEBUG: Retrying <GET https://api.hackertarget.com/reverseiplookup/?q=195.11.184.130> with another proxy (failed 5 times, max retries: 5)
2019-11-10 10:39:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://api.hackertarget.com/reverseiplookup/?q=195.11.184.130> (referer: None)
2019-11-10 10:39:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://api.hackertarget.com/reverseiplookup/?q=185.179.235.40> (referer: None)
[u'capitalinstant.com']
[u'142.92.242.192']
[u'API count exceeded - Increase Quota with Membership']
[u'API count exceeded - Increase Quota with Membership']
[u'API count exceeded - Increase Quota with Membership']

как удалить прокси-результат для очистки только моего домена, пожалуйста, спасибо большое Mutch =)

0 голосов
/ 05 ноября 2019

Попробуйте:

РЕДАКТИРОВАТЬ: также лишить IP перед отправкой запроса

import scrapy

lists = open(raw_input('IP list file name: '), 'r').read().split('\n')

class jeffbullasSpider(scrapy.Spider):
    name = "iptohost"
    allowed_domains = ["api.hackertarget.com"]
    url = "https://api.hackertarget.com/reverseiplookup/?q={}"

    def start_requests(self):
        for ip in lists:
            yield scrapy.Request(url=self.url.format(ip.strip()), callback=self.parse)

    def parse(self, response):
       print(response.xpath('//body//text()').get())
...