我需要得到标题和电话号码的每一个对象在页面上。在
但电话号码显示为-0527…getphone
获取电话:
<a id="phone" onclick="jQuery( '#Handy1').load(
'/ajax/detail/displayphonenumber.php?coded=MDE3Mi8gODUwNzQzMg--&adno=170868912&adsource=quoka+online&catid=27_2710&cusno=19128806' )">getphone</a>
ONCLICK-使用单个数据(针对每个对象)生成ajax,并以以下形式下载完整的电话号码-
^{pr2}$但这种情况在根本没有电话号码的情况下是可能的。因此,我对“onclick”变量执行“try except”。在
我正在尝试执行ajax并获取完整的电话号码,然后将下载了电话号码的页面传递到parse_item()
但我有麻烦。当我用pdb进行调试时,我在parse_item()==http://www.example.com/ajax/detail/displayphonenumber.php中看到了该响应,而不是对象的页面
我该怎么修?谢谢!在
请注意,不要提出任何工具。。只有稀奇古怪的解决办法
def parse(self, response):
urls = response.xpath('//div/a/@href').extract()
for url in urls:
absolute_url = response.urljoin(url)
request = scrapy.Request(absolute_url, callback=self.phone)
yield request
def phone(self, response):
try:
onclick = response.xpath('//a[@id="phone"]/@onclick').extract()[0]
except:
onclick = None
if onclick:
click_split = onclick.split('?')
params = click_split[1]
params_split = params.split('&')
coded = params_split[0].split('=')
adno = params_split[1].split('=')
adsource = params_split[2].split('=')
catid = params_split[3].split('=')
cusno = params_split[4].split('=')
return [ FormRequest("http://www.example.com/ajax/detail/displayphonenumber.php",
formdata={'coded': coded[1],
'adno': adno[1],
'adsource': adsource[1],
'catid': catid[1],
'cusno': cusno[1]},
callback=self.parse_item) ]
else:
self.parse_item(response)
def parse_item(self, response):
item = LotItem()
try:
item['title'] = response.xpath('//h1/text()').extract()[0]
except:
item['title'] = 'no title'
try:
item['phone_number'] = response.xpath('//ul/li/text()').extract()[0]
except:
item['phone_number'] = 'no phone number'
yield item
目前没有回答
相关问题 更多 >
编程相关推荐