python - 如何使用带有文本列表的scrapy
问题描述
大家好,我在新项目上工作,用 scrappy 将 ip 转换为域名
我找不到如何在我的起始网址上添加列表文本(ip.txt),用文本列表替换(+ IP)
示例:
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()
(我是python新手,非常感谢你。)
解决方案
试试这个:
编辑:在发送请求之前也剥离 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())
推荐阅读
- android - 使用风味使用 MS AppCenter 构建 Flutter android APK 的问题
- tensorflow - 在 TensorFlow Federated 中应用差分隐私
- python - 将大型 csv 文件的每分钟时间序列数据聚合到每小时
- reactjs - React-Redux Connect 收到空状态
- r - gtsummary:堆叠数据框?
- google-cloud-platform - 我可以将 json 文件从 Project_A 推送/加载到 Project_B 的 BigQuery 吗?即跨项目
- docker - 无法在我的容器中安装解压缩工具
- c++ - 如何懒惰地初始化 unique_ptrs 的模板元组?
- android - 整合账户持有状态问题:删除应用程序或切换设备后,历史记录被删除
- node.js - 如何防止网站使用 puppeteer 提出不必要的请求以提高我们程序的性能