我想从链接http://www.yad2.co.il/Nadlan/sales.php?City=%E1%F0%E9%EE%E9%F0%E4+%E2% $
中提取NadLanID值我使用Firebug来检查我要提取的html代码,NadlanId值是:
<td onclick="show_ad('2','1','/Nadlan/salesDetails.php','NadlanID','1614569','644');"> בית אריה - יאיר שטרן </td>
我使用以下Scrapy代码检查Scrapy是否解析了上面的html代码:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://www.yad2.co.il/Nadlan/sales.php?City=%E1%F0%E9%EE%E9%F0%E4+%E2%$
]
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)`
但是在回复中没有NadlanId。
我如何获得NadlanId值?
答案 0 :(得分:2)
在这种情况下,您希望从html onclick
属性中检索javascript函数参数。
首先我们找到整个onclick文本:
text = response.xpath("//td/@onclick").extract_first()
然后可以使用简单的正则表达式模式来查找函数参数:
# capture anything in between the () of show_ad
< re.findall("show_ad\((.+?)\)", text)[0].split(',')
>["'2'",
"'1'",
"'/Nadlan/salesDetails.php'",
"'NadlanID'",
"'1614569'",
"'644'"]