python - scrapy CrawlerProcess() 运行我的输入字段两次
问题描述
我制作了一个脚本来要求你输入一些单词,它会搜索我的代码
class Amazon_spiders(scrapy.Spider):
name = "amazon"
start = time.time( )
search = []
starting=[]
parse_number=0
number = input('Enter the number of times to search \n')
for n in range(int(number)):
word = input("Enter one sentence to be searched \n ")
search.append(word)
words = word.strip()
# replace space with +
words = word.replace(' ', '+')
url = f'https://www.amazon.com/s?k={words}&ref=nb_sb_noss'
starting.append(url)
start_urls=starting
def start_requests(self,response):
print(f'currant page {response.url}')
yield Request(url=response.url, callback=self.parse_url)
错误是它要求我输入一个单词两次:
另一个错误类型错误:start_requests() 缺少 1 个必需的位置参数:“响应”,感谢您的帮助
解决方案
我们应该很好,但是这个问题对你来说怎么可能不明显呢?每次通过循环时都要求输入。如果您想询问一次单词但多次将其添加到列表中,那么这就是您应该做的。这意味着将您for n in range(int(number)):
移至之前starting.append(url)
(并调整缩进以匹配。
或者,您甚至不需要循环:
starting.extend( [url] * int(number) )
推荐阅读
- php - Laravel 查询从数据库中获取数据很慢
- powershell - Chocolatey Install Arguments Syntax
- filter - 使用带有graphql的magento2中的自定义属性过滤产品会导致错误:字段不是由类型ProductAttributeFilterInput定义的
- css - 如果要打印的页面超过 1 页,Fullcalendar.js V5 调度程序不打印垂直行
- bash - 在 Bash(4) 中使用 namerefs?
- javascript - 如何设置 Material UI Slider 的 valueLabel / tooltip 的初始位置?
- java - Cytoscape:错误 83,没有找到 JRE Windows 10
- html - 如何在 div 的顶部和底部显示两个元素,这是 CSS 中的自动高度
- mysql - 如何获取在 mysql 中使用 [DEFAULT CURRENT_TIMESTAMP] 的表?
- android - 如何在折叠工具栏中更改标题颜色