我是一个简单的网络爬虫,是使用crawler4j的构建块构建的。我试图在爬虫爬行时构建一个字典,然后在构建和解析文本时将其传递给我的主(控制器)。既然我的MyCrawler对象不是在我的主类中创建的(使用MyCrawler.class作为第一个参数),我该怎么做呢?此外,我无法更改controller.start方法。我希望在爬虫完成后能够使用在爬虫中创建的字典。
我认为最好的方法是让controller.start获取一个预定义并创建的MyCrawler对象,但我看不到这样做的方法。
下面是我的代码。非常感谢您的帮助!
爬虫:
public class MyCrawler extends W
我有一个包含许多URL的文件。我愿意从这些网址中提取链接,然后提取不同页面的标题和metas。
我想知道有多少URL可以提供给Scrapy爬虫,这样我就可以得到适当的结果。我不知道Scrapy是否会对URL扫描和从URL中提取链接有任何限制。如何随机化提取的链接?
le = LinkExtractor()
for link in le.extract_links(response):
yield scrapy.Request(link.url, callback=self.parse_inof)
请参见上面的代码。我用它来从URL中提取链接。我怎么能做到这一点?
我们目前有一个web爬虫为我们的客户端,没有能力为我们提供一个xml文件。名单正在建立,所以我需要有一个更有效的方式来抓取这些网站。爬虫的逻辑很简单:
Pass in www.example.com/widgets
Store the html and pass it to crawler function
crawl widgets page 1
IF widgets page 1 is the end of their product list
stop
else
go to widgets page 2
这对队列中的每个站点都是重复的。如您所见,如果Site 1有50
我有反应网络应用程序。这是一个单一的页面应用程序,所以基本上有一个“空”HTML文件和一个JS包来完成这一切。
但为了提高SEO的能力,我正在为我的服务器上的机器人爬虫做SSR。我还区分了“桌面”爬虫和“移动”爬虫,并为每个爬虫提供了不同的布局。
我通过用户和机器人的User-Agent字符串来区分它们。
所以这些都是可能的:
REGULAR USER => GETS "EMPTY" HTML + JS BUNDLE
ROBOT DESKTOP => GETS RENDERED HTML WITH DESKTOP LAYOUT
ROBOT MOBILE =>