我想跟随:
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
并得到了错误
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/admin/__init__.py", line 355, in post
exec(compiled_code, globals())
File "<string>", line 1, in <module>
ImportError: No module named bs4
Run Code Online (Sandbox Code Playgroud)
我怎么用它Google App Engine runtime 2.7?
更新
我的项目结构看起来像
flask-appengine-template/
docs/
licenses/
src/
application/
static/
templates/
models.py
settings.py
urls.py
views.py
libs/
bs4/
app.yaml
src.py
Run Code Online (Sandbox Code Playgroud)
我使用这个模板从这里
由于父母的app.yaml就是src,我加了一个文件src.py,并添加两行那里.
我仍然看到同样的错误
ImportError: No module named bs4
Run Code Online (Sandbox Code Playgroud)
但是,我的项目名称app.yaml是flaskonappengine
请告诉我,我仍然在做错什么?
我已经安装了Python 3.5和Beautifulsoup4.当我尝试导入bs4时,我收到以下错误.那有什么问题吗?或者我应该只安装Python 3.4?请非常明确 - 我是编程新手.非常感谢!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 30, in <module>
from .builder import builder_registry, ParserRejectionMarkup
File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 308, in <module>
from . import _htmlparser
File "C:\Python 3.5\lib\sit-packages\bs4\_htmlparser.py", line 7, in <module>
from html.parser import (
ImportError: cannot import name 'HTMLParseError'
Run Code Online (Sandbox Code Playgroud) 我是python的新手,我试图解析一些XML文件,以便添加一些新的标签并存储新的XML文件.
python-beautifulsoup接缝是适合它的包装.在网上搜索教程,如何向BeautifulSoup解析的XML添加新标签,我发现,使用了包python-bs4.
查看包描述,两个包都具有相同的标题:
python-bs4 - error-tolerant HTML parser for Python
python-beautifulsoup - error-tolerant HTML parser for Python
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:有什么区别?
//更新:如果有人意味着对这个问题进行投票,那么留下原因作为评论是有帮助的.
我试图从元标记中读取描述,这就是我使用的
soup.findAll(name="description")
Run Code Online (Sandbox Code Playgroud)
但它不起作用,但是,下面的代码工作得很好
soup.findAll(align="center")
Run Code Online (Sandbox Code Playgroud)
如何从文档头部的元标记中读取描述?
我正在进入一个包含我想要的所有行的for循环:
page = urllib2.urlopen(pageurl)
soup = BeautifulSoup(page)
tables = soup.find("td", "bodyTd")
for row in tables.findAll('tr'):
Run Code Online (Sandbox Code Playgroud)
在这一点上,我有我的信息,但是
<br />
Run Code Online (Sandbox Code Playgroud)
标签毁了我的输出.
删除这些最简洁的方法是什么?
我有以下(简化)代码,它使用以下来源:
<html>
<p>line 1</p>
<div>
<a>line 2</a>
</div>
</html>
soup = BeautifulSoup('<html><p>line 1</p><div><a>line 2</a></div></html>')
ele = soup.find('p').nextSibling
somehow_print_tag_of_ele_here
Run Code Online (Sandbox Code Playgroud)
我想得到ele的标签,在这种情况下是"div".但是,我似乎只能得到它的孩子的标签.我错过了一些简单的事吗?我以为我可以做ele.tag.name,但这是一个例外,因为tag是None.
#Below correctly prints the div element "<div><a>line 2</a></div>"
print ele
#Below prints "None". Printing tag.name is an exception since tag is None
print ele.tag
#Below prints "a", the child of ele
allTags = ele.findAll(True)
for e in allTags:
print e.name
Run Code Online (Sandbox Code Playgroud)
在这一点上,我正在考虑做一些事情来获得ele的父母,然后得到父母的孩子的标签,并计算了多少上层兄弟姐妹,倒数到正确的子标签.这看起来很荒谬.
我试图将表数据刮到CSV文件中.不幸的是,我遇到了一个障碍,下面的代码只是从第一个TR重复所有后续TR的TD.
import urllib.request
from bs4 import BeautifulSoup
f = open('out.txt','w')
url = "http://www.international.gc.ca/about-a_propos/atip-aiprp/reports-rapports/2012/02-atip_aiprp.aspx"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page)
soup.unicode
table1 = soup.find("table", border=1)
table2 = soup.find('tbody')
table3 = soup.find_all('tr')
for td in table3:
rn = soup.find_all("td")[0].get_text()
sr = soup.find_all("td")[1].get_text()
d = soup.find_all("td")[2].get_text()
n = soup.find_all("td")[3].get_text()
print(rn + "," + sr + "," + d + ",", file=f)
Run Code Online (Sandbox Code Playgroud)
这是我的第一个Python脚本,所以任何帮助将不胜感激!我已经查看了其他问题的答案,但无法弄清楚我在这里做错了什么.
使用Beautiful Soup模块,如何获取div类名为feeditemcontent cxfeeditemcontent?的标签的数据?是吗:
soup.class['feeditemcontent cxfeeditemcontent']
Run Code Online (Sandbox Code Playgroud)
要么:
soup.find_all('class')
Run Code Online (Sandbox Code Playgroud)
这是HTML源:
<div class="feeditemcontent cxfeeditemcontent">
<div class="feeditembodyandfooter">
<div class="feeditembody">
<span>The actual data is some where here</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是Python代码:
from BeautifulSoup import BeautifulSoup
html_doc = open('home.jsp.html', 'r')
soup = BeautifulSoup(html_doc)
class="feeditemcontent cxfeeditemcontent"
Run Code Online (Sandbox Code Playgroud) 我有这个代码(用BS4文档编写):
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
当我运行脚本(使用python3)时,我收到错误:
ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)
所以安装BeatifulSoup:
sudo pip install BeatifulSoup4
Run Code Online (Sandbox Code Playgroud)
但是当我再次尝试运行脚本时,我得到了同样的错误.确实BS4安装在:
BeautifulSoup4 in /usr/local/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)
但我想安装并使用它与python3.3(因为有其他模块不使用python2.7).
我尝试过:
virtualenv --python=/usr/bin/python2.7 /usr/bin/python3.3
Run Code Online (Sandbox Code Playgroud)
然后再次安装BS4,但没有解决.
任何线索?提前致谢
过去45分钟,我一直在试图跑步:
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
但无济于事.我试过这些命令:
python -m pip install beautifulsoup4
Run Code Online (Sandbox Code Playgroud)
在哪里说:
Requirement already satisfied: beautifulsoup4 in c:\python27\lib\site-packages
Run Code Online (Sandbox Code Playgroud)
我试过了:
pip3 install beautifulsoup4
Run Code Online (Sandbox Code Playgroud)
它说的一样.
我试过了:
pip install beautifulsoup4
Run Code Online (Sandbox Code Playgroud)
一样.
我已经遍布stackoverflow,youtube,我正在疯狂地试图解决这个问题.我不知道该怎么做,请帮帮我.
当我尝试使用以下代码运行我的程序main.py时:
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
使用py -3 main.py,我收到错误:
ModuleNotFoundError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)
请帮助请帮助我.
我试过在BeautifulSoup4上提出的方法无法安装在Windows7上的python3.5中但无济于事.
beautifulsoup ×10
python ×9
html-parsing ×2
python-3.x ×2
bs4 ×1
python-2.7 ×1
python-3.3 ×1
python-3.5 ×1
tags ×1
ubuntu ×1
xml ×1