我需要一些关于Scrapy的帮助和指导。 我的Start_Url是:: http://lighting.philips.co.uk/prof/ 已粘贴我的代码,可以获取链接/路径,直到下面的网址。但不要超越那个。我需要转到每个产品的页面,列在下面的路径中。在“productsinfamily”页面中列出了特定的产品(可能在java脚本中)。我的Crawler无法访问这些单独的产品页面。
以下是抓取蜘蛛的代码 -
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class ProductSearchSpider(CrawlSpider):
name = "product_search"
allowed_domains = ["lighting.philips.co.uk"]
start_urls = ['http://lighting.philips.co.uk/prof/']
rules = (Rule(LinkExtractor(allow=
(r'^https?://www.lighting.philips.co.uk/prof/led-lamps-and-tubes/.*', ),),
callback='parse_page', follow=True),)
def parse_page(self, response):
yield{'URL' : response.url}
答案 0 :(得分:0)
你是对的,链接是用javascript定义的。
如果您查看html源代码,在第3790行,您可以看到创建了一个名为d75products
的变量。这稍后用于填充模板并显示产品。
我接近这个的方法是从源中提取这些数据并使用json
模块加载它。获得数据后,无论您想要什么,都可以使用它。
另一种方法是使用某些东西(例如浏览器)来执行javascript,然后解析生成的html。我认为这是不必要的,而且过于复杂。