Ich versuche Scrapy auf einer Website zu verwenden, die ich nicht kenne die URL-Struktur von.Bedingte URL-Scraping mit Scrapy
Ich möchte:
nur Extrahieren von Daten aus Seiten, die Xpath "// div [@ class =" Produkt-view "]" enthalten.
Extrakt drucken (in CSV) die URL, den Namen und den Preis XPaths
Wenn ich das unten Skript ausführen, alles, was ich bekommen, ist eine zufällige Liste von URLs
scrapy crawl dmoz>test.txt
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider
from scrapy.http import Request
DOMAIN = 'site.com'
URL = 'http://%s' % DOMAIN
class MySpider(BaseSpider):
name = "dmoz"
allowed_domains = [DOMAIN]
start_urls = [
URL
]
def parse(self, response):
for url in response.xpath('//a/@href').extract():
if not (url.startswith('http://') or url.startswith('https://')):
url= URL + url
if response.xpath('//div[@class="product-view"]'):
url = response.extract()
name = response.xpath('//div[@class="product-name"]/h1/text()').extract()
price = response.xpath('//span[@class="product_price_details"]/text()').extract()
yield Request(url, callback=self.parse)
print url