如果其结束标记为&lt; \\ / p&gt;,如何在<p>中获取值列表

时间:2018-06-10 14:49:33

标签: python beautifulsoup

这很奇怪。我试图从<p>标记结尾为<\\/p>而非</p>的网站上搜集。显然,每次调用soup.find_all('p')时,它都不会返回任何值,而是返回None。我尝试adiv时没有任何问题,因为两者都是分别具有</a></div>结束标记的结构良好的标记。我对如何解决这个问题一无所知。

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup


url = 'http://www.gmanetwork.com/news/story/656223/money/economy/iphone-worries-weigh-on-wall-street'
page = urlopen(Request(url, headers={'User-Agent': 'Mozilla/5.0'}))
data = page.read()
soup = BeautifulSoup(data, 'html.parser')
print(soup.find_all('p'))

修改

正如所建议的,我发现像Splinter这样的无头浏览器有点令人沮丧,因为模块需要浏览器依赖(如果我错了,请纠正我)。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import re
a = "<p> This is a text <\\/p>"
match = re.match("""^.*<p>(.*)<\\\\/p>.*$""", a).group(1)
print(match)