Я пытаюсь извлечь идентификатор продукта из тега onclick внутри «предшествующего брата», который является тегом ul (id = «ShowProductImages»).Проблема с xpath/regex в Scrapy spider
Число Я пытаюсь извлечь непосредственно после PID =, например:?
... список/ViewAll PID = & изображение = 206 ...
Ниже содержание, которое я пытаюсь извлечь из:
<ul id="ShowProductImages" class="imageView">
<li><a href="" target="_blank" onClick="javascript:initWindow('http://products.example.com/products/list/ViewAll?pid=234565&image=754550',520,520,100,220);return false;"><img src="http://content.example.com/assets/images/products/j458jk.jpg" width="200" height="150" alt="Product image description here" border="0"></a></li>
</ul>
<div class="description">
Description here...
</div>
Я использую XPath для выбора OnClick тега наряду с регулярным выражением, чтобы извлечь идентификатор. Это код, который я использую (который не работает)
def parse(self, response):
sel = HtmlXPathSelector(response)
products_path = sel.xpath('//div[@class="description"]')
for product_path in products_path:
product = Product()
product['product_pid'] = product_path.xpath('preceding-sibling::ul[@id="ShowProductImages"][1]//li/a[1]/@onclick').re(r'(?:pid=)(.+?)(?:\'|$)')
yield product
Любые предложения? Я не совсем уверен, где я ошибся.
Спасибо за вашу помощь заранее.
Возможно, вы также можете ограничить регулярное выражение 're (r'pid = (\ d +) ')', причем неселективные круглые скобки бесполезны здесь ... – Robin