我对编程相当陌生,并且正在为我在网络爬虫上的论文而工作。我已经提供了一个网络爬虫,但我发现它太慢,因为它是单线程。花了30分钟才爬上1000个网页。我试图创建多个线程来执行,同时使用20个线程运行1000个网页只需2分钟。但现在我遇到了“内存堆出”的错误。我确信我所做的是错误的,即为20个线程创建了一个 for 循环。在不给出错误的情况下多线程java爬行器的正确方法是什么?说到这一点,多线程是否解决了我的问题?
我正在尝试从一个网站上拉价格信息(学习如何建立一个实践网络爬虫)。我正在使用scrapy来构建我的爬虫,并且在我的价格蜘蛛中,我尝试使用以下代码行来拉取价格的html字段的xpath:
text = response.xpath(‘/html/body/div[8]/div[2]/div[1]/div[2]/div[4]/div[7]/div[1]/div/meta[2]’).extract()
当我运行这个程序时,我得到了“语法错误:无效语法”,在response.xpath()的第一个单引号下有一个胡萝卜。我试着改成双引号,但什么也没改变。有什么想法吗?