shopt -s expand_aliases
嗨,如果我没有" .text"运行此代码,我就会遇到Beautiful Soup的问题。最后它给我看了一个div列表但是如果我添加" .text"最后出现错误
追踪(最近一次通话): 文件" script.py",第15行,in 打印(body.text) AttributeError:' ResultSet'对象没有属性' text'
答案 0 :(得分:5)
ind['test3']
返回一个ResultSet对象,您可以使用find_all
循环进行迭代。你能做的是:
for
答案 1 :(得分:3)
如果您输入:
server {
listen ***.***.**.***:80;
server_name example.com www.example.com;
root C:\Users\Administrator\Dropbox\websites\php_website;
index index.php index.html;
log_not_found off;
charset utf-8;
#access_log logs/example.com-access.log main;
location ~ /\. {allow all;}
location / {
rewrite ^/(|/)$ /index.php?url=$1;
rewrite ^/([a-zA-Z0-9_-]+)(|/)$ /index.php?url=$1;
rewrite ^/(.*)\.htm$ /$1.php;
}
location = /favicon.ico {
}
location = /robots.txt {
}
location ~ \.php$ {
if (!-e $document_root$document_uri){return 404;}
fastcgi_pass localhost:9054;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
您会看到print(type(body))
是body
这意味着所有与该类匹配的元素。你可以迭代它们:
<class 'bs4.element.ResultSet'>
或者,如果您知道自己只有div,则可以改为使用for div in body:
print(div.text)
:
find
答案 2 :(得分:1)
可能应该发布答案..所以在评论中几乎逐字地说明
您的代码应如下:
for div in body:
print div.text
#python3
#print(div.text)
或根据您的偏好设置一些命名架构。
find_all
方法返回一个生成的列表(松散地使用这里的术语列表),这些项目是beautifulsoup找到的符合条件的项目,在根据您搜索的方式递归或非递归地解析源网页html之后。< / p>
由于错误表明生成的对象集没有属性文本,因为它不是元素,而是它们的集合。 但是,结果集中的项目(应该找到)都可以。
您可以查看文档here