Привет, ребята и девочки,XPath/Scrapy scrape DOCTYPE
Я строю скребок с помощью Scrapy и XPath. То, что меня интересует соскабливанием, - это DOCTYPE со всех сайтов, которые я пересекаю, и мне трудно найти документацию по этому поводу, и я чувствую, что это должно быть возможно, учитывая, что это относительно простой запрос. Какие-либо предложения?
Cheers,
Joey
Вот код, который я до сих пор:
import scrapy
from scrapy.selector import HtmlXPathSelector
from scrapy.http import HtmlResponse
from tutorial.items import DanishItem
from scrapy.http import Request
import csv
class DanishSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = []
start_urls = [very long list of websites]
def parse(self, response):
for sel in response.xpath(???):
item = DanishItem()
item['website'] = response
item['DOCTYPE'] = sel.xpath('????').extract()
yield item
Новый паук, извлекает DOCTYPE, но по какой-то причине будет печатать мой ответ на указанный .json файл 15 раз, а не только один раз
class DanishSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = []
start_urls = ["http://wwww.example.com"]
def parse(self, response):
for sel in response.selector._root.getroottree().docinfo.doctype:
el = response.selector._root.getroottree().docinfo.doctype
item = DanishItem()
item['website'] = response
item['doctype'] = el
yield item
Это отлично работает!Единственное, что я сейчас не могу понять, это то, почему я получаю ответ, написанный в моем .json-файле 15 раз, а не только один раз, см. Выше. Edit –
Проверьте мое обновление в ответе. – bosnjak
Благодарим вас за подробное объяснение! Это отлично работает :) –