Benim items.py dosya böyle giderScrub kullanarak javascript değişkeninden veri ayıklamak için re() nasıl kullanılır?</p> <pre><code>from scrapy.item import Item, Field class SpiItem(Item): title = Field() lat = Field() lng = Field() add = Field() </code></pre> <p>ve örümcek:
import scrapy
import re
from spi.items import SpiItem
class HdfcSpider(scrapy.Spider):
name = "hdfc"
allowed_domains = ["hdfc.com"]
start_urls = ["http://hdfc.com/branch-locator"]
def parse(self,response):
addresses = response.xpath('//script')
for sel in addresses:
item = SpiItem()
item['title'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="title":).+(?=")')
item['lat'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="latitude":).+(?=")')
item['lng'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="longitude":).+(?=")')
item['add'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="html":).+(?=")')
yield item
bütün javascript kodu, görüntüleme sayfası kaynağına, içeride yazılır: //html/body/table/tbody/tr[348]/td[2]
.
Neden kodum çalışmıyor? Öğeler dosyasında belirtilen sadece dört alanı çıkarmak istiyorum. Bunun yerine normal ifadeler kullanarak alana göre alan çıkarma
girintinizi düzeltin. – IanAuld
Girinti tamamlandı. – Aditya