【发布时间】:2015-06-03 10:47:18
【问题描述】:
这是我第一个使用 scrapy 的爬虫。
我正在尝试从https://www.google.co.in/trends/hotvideos#hvsm=0 站点删除视频网址、标题。
import scrapy
from scrapy.item import Item, Field
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class CraigslistItem(Item):
title = Field()
link = Field()
class DmozSpider(scrapy.Spider):
name = "google"
allowed_domains = ["google.co.in"]
start_urls = [
"https://www.google.co.in/trends/hotvideos#hvsm=0"
]
def parse(self, response):
#for sel in response.xpath('//body/div'):
hxs = HtmlXPathSelector(response)
sites = hxs.xpath("//span[@class='single-video-image-container']")
items = []
for sel in response.xpath("//span[@class='single-video-image-container']"):
item = CraigslistItem()
item['title'] = sel.xpath('a/text()').extract()
item['link'] = sel.xpath('a/@href').extract()
items.append(item)
print items
对我做错的事情进行一般性的演练将是非常可观的。
【问题讨论】:
-
你不会得到这个工作,因为
POST请求显示这些电影列表。尝试使用scrapy form-request -
@Jathin:谢谢,但我真的听不懂。你能详细说明一下吗
-
尽管您向此url 发出请求以获取电影列表,但实际上在内部触发了
ajax-post-request,并且对该请求作为响应,您将在该页面中获得电影列表 -
你不需要任何 xpath 来获取数据,因为响应本身是一个 json
标签: python web-scraping scrapy