このサイトから携帯電話の料金を取得したい http://www.univercell.in/buy/SMART
私はそれをテストしようとしたので、使用しました: Scarpyシェル
しかし、このサイトに接続できません。ページが ajax を使用して読み込まれると、firebug を使用して start_url を見つけました。誰でも私が間違っているところを教えてもらえますか
このサイトから携帯電話の料金を取得したい http://www.univercell.in/buy/SMART
私はそれをテストしようとしたので、使用しました: Scarpyシェル
しかし、このサイトに接続できません。ページが ajax を使用して読み込まれると、firebug を使用して start_url を見つけました。誰でも私が間違っているところを教えてもらえますか
これがあなたのスパイダーです:
from scrapy.item import Item, Field
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class UnivercellItem(Item):
vendor = Field()
model = Field()
price = Field()
BASE_URL = "http://www.univercell.in/control/AjaxCategoryDetail?productCategoryId=PRO-SMART&category_id=PRO-SMART&attrName=&min=&max=&sortSearchPrice=&VIEW_INDEX=%s&VIEW_SIZE=15&serachupload=&sortupload="
class UnivercellSpider(BaseSpider):
name = "univercell_spider"
allowed_domains = ["www.univercell.in"]
start_urls = [BASE_URL % index for index in range(1, 21)]
def parse(self, response):
hxs = HtmlXPathSelector(response)
mobiles = hxs.select("//div[@class='productsummary']")
print mobiles
for mobile in mobiles:
item = UnivercellItem()
item['vendor'] = mobile.select('.//div[1]/div/text()').extract()[0].strip()
item['model'] = mobile.select('.//div[3]/div[1]/a/text()').extract()[0].strip()
item['price'] = mobile.select('.//span[@class="regularPrice"]/span/text()').extract()[0].strip()
yield item
に保存してからspider.py
実行しscrapy runspider spider.py -o output.json
ます。次に、次のoutput.json
ように表示されます。
{"model": "T375", "vendor": "LG", "price": "Special Price Click Here"}
{"model": "P725 Optimus 3D Max", "vendor": "LG", "price": "Special Price Click Here"}
{"model": "P705 Optimus L7", "vendor": "LG", "price": "Special Price Click Here"}
{"model": "9320 Curve", "vendor": "Blackberry", "price": "Special Price Click Here"}
{"model": "Xperia Sola", "vendor": "Sony", "price": "Rs.14,500.00"}
{"model": "Xperia U", "vendor": "Sony", "price": "Special Price Click Here"}
{"model": "Lumia 610", "vendor": "Nokia", "price": "Special Price Click Here"}
...
それが役立つことを願っています。