想要爬取一个网站,这个网站的不同网页的正文部分的xpath是不一样的,比如:
有个页面的正文部分是://*[@id='postmessage_32199']
另一个是://*[@id='postmessage_32153']
......
它们的格式是postmessage_xxxxx
,x为数字。
我的问题是:xpath中可以使用用正则表达式吗?如果不能那怎么匹配这么多不同的xpath?
ps:我是用的是python的scrapy框架
提前感谢各位了。
想要爬取一个网站,这个网站的不同网页的正文部分的xpath是不一样的,比如:
有个页面的正文部分是://*[@id='postmessage_32199']
另一个是://*[@id='postmessage_32153']
......
它们的格式是postmessage_xxxxx
,x为数字。
我的问题是:xpath中可以使用用正则表达式吗?如果不能那怎么匹配这么多不同的xpath?
ps:我是用的是python的scrapy框架
提前感谢各位了。
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
你用 https://github.com/binux/pyspider 我就告诉你
//*[starts-with(@id, "postmessage_")]
或者
doc.xpath(r'//*[re:match(@id, "postmessage_\d+")]', namespaces={"re": "http://exslt.org/regular-expressions"})