python - Scrapy 解析 javascript

标签 python regex web-scraping scrapy web-crawler

我在页面上有一个 javascript,如下所示:

new Shopify.OptionSelectors("product-select", { product: {"id":185310341,"title":"10. Design | Siyah \u0026 beyaz kalpli",

我想得到“185310341”。我在谷歌上搜索了大约几个小时,但找不到任何东西,我希望你能帮助我。我怎样才能抓取那个 javascript 并获得那个 id?

我试过那个代码:

id = sel.search('"id":(.*?),',text).group(1)
print id

但是我得到了:

exceptions.AttributeError: 'Selector' object has no attribute 'search'

最佳答案

Scrapy 选择器有 built-in support对于正则表达式:

sel.xpath('<xpath_to_find_the_element_text>').re(r'"id":(\d+)')

展示这个特定正则表达式的工作的演示:

>>> import re
>>> s = 'new Shopify.OptionSelectors("product-select", { product: {"id":185310341,"title":"10. Design | Siyah \u0026 beyaz kalpli",'
>>> re.search('"id":(\d+)', s).group(1)
'185310341' 

关于python - Scrapy 解析 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23662069/

相关文章:

python - 如何选择和提取两个元素之间的文本?

python - 我画出图像中最大的轮廓。但是用颜色填充是行不通的。任何的想法??

python - BeautifulSoup4 在 Ubuntu 上正常运行,但在 Raspbian 上运行不正常

python - 在 Django rest api 中查询最小和最大大小

javascript - 如果超过 10 个,请移除

regex - Mod 重写传递参数规则

Python 请求 - "To continue your browser has to accept cookies and has to have JavaScript enabled."

python - 如何使用 python 3.6 从维基百科类别的所有关联页面中抓取和提取所有子类别名称?

python - 获取python多处理池中worker的唯一ID

java - 这个用于替换转义字符的 Java 正则表达式如何工作?