Tôi đang cố gắng thu thập thông tin sản phẩm từ một trang web bằng cách sử dụng phương pháp thu thập dữ liệu. Trang web sắp sửa của tôi trông như thế này:
- bắt đầu với trang product_list với 10 sản phẩm
- một cú nhấp chuột vào nút "tiếp theo" sẽ tải 10 sản phẩm tiếp theo (url không thay đổi giữa hai trang)
- tôi sử dụng LinkExtractor để theo từng liên kết sản phẩm vào trang sản phẩm và nhận được tất cả thông tin tôi cần
Tôi đã cố gắng tái tạo lệnh gọi tiếp theo nhưng không thể hoạt động, vì vậy, tôi đang dùng thử selen. Tôi có thể chạy webdriver của selen trong một tập lệnh riêng biệt, nhưng tôi không biết cách tích hợp với scrapy. Tôi sẽ đặt phần selen ở đâu trong con nhện phế liệu của mình?
Con nhện của tôi khá chuẩn, như sau:
class ProductSpider(CrawlSpider):
name = "product_spider"
allowed_domains = ['example.com']
start_urls = ['http://example.com/shanghai']
rules = [
Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="productList"]//dl[@class="t2"]//dt'), callback='parse_product'),
]
def parse_product(self, response):
self.log("parsing product %s" %response.url, level=INFO)
hxs = HtmlXPathSelector(response)
# actual data follows
Bất kỳ ý tưởng được đánh giá cao. Cảm ơn bạn!