Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取<;中的值列表;p>;如果其结束标记为<\\/p>;_Python_Beautifulsoup - Fatal编程技术网

Python 如何获取<;中的值列表;p>;如果其结束标记为<\\/p>;

Python 如何获取<;中的值列表;p>;如果其结束标记为<\\/p>;,python,beautifulsoup,Python,Beautifulsoup,这很奇怪。我试图从一个网站上抓取的标签末尾是,而不仅仅是。显然,每次我调用soup.find_all('p'),它都不会返回任何值,而是无值。当我尝试a或div时,它没有任何问题,因为它们都是结构良好的标记,分别带有和结束标记。我不知道该如何解决这个问题 from urllib.request import Request, urlopen from bs4 import BeautifulSoup url = 'http://www.gmanetwork.com/news/story/65

这很奇怪。我试图从一个网站上抓取
的标签末尾是
,而不仅仅是

。显然,每次我调用
soup.find_all('p')
,它都不会返回任何值,而是无值。当我尝试
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这样的无头浏览器有点令人沮丧,因为模块需要浏览器依赖关系(如果我错了,请纠正我)。

您可以这样做:

import re
a = "<p> This is a text <\\/p>"
match = re.match("""^.*<p>(.*)<\\\\/p>.*$""", a).group(1)
print(match)
重新导入
a=“这是一个文本”
match=re.match(“^.*(...*$”,a).group(1)
打印(匹配)

你能给我一个HTML代码的例子吗?我非常怀疑它是否能正确呈现。@ivan_pozdeev是的,代码工作正常。唯一的问题是我无法获取
p
标记中的值,因为每个
p
标记都有
\\/p
结束标记。结束标记在脚本元素中。如果您想要呈现脚本元素,您需要呈现JavaScript,请参阅我对可能重复的问题的答案。您是否安装了
lxml
和/或
html5lib
?是的,我也在处理这个问题。我别无选择,只能使用正则表达式。顺便说一句,谢谢你的回答。没问题,请记住这将返回文本的最后一个匹配项,我不久前找到了一个解决方案,但我找不到,但我记得在a**中找到所有匹配项是一件痛苦的事。我试过
re.findall(r“(.*),data.decode('utf-8')
,它工作得很好。其他人不建议使用此方法,因为结束标记也会更改每个请求,例如
然后
,然后再返回到
。我希望bs4的维护人员将来也能具备这种能力。