Mój plik items.py idzie tak:Jak używać funkcji re() do wyodrębniania danych ze zmiennej javascript za pomocą scrapy?
from scrapy.item import Item, Field
class SpiItem(Item):
title = Field()
lat = Field()
lng = Field()
add = Field()
i pająk jest:
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
Cały kod JavaScript, patrzenia na stronie źródła, jest napisane wewnątrz: //html/body/table/tbody/tr[348]/td[2]
.
Dlaczego mój kod nie działa? Chcę wyodrębnić tylko cztery pola wymienione w pliku elementów.
Proszę naprawić wgniecenie. – IanAuld
Wykonano wcięcie. – Aditya