Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 “美丽集团”;属性错误:';非类型';对象没有属性';文本'&引用;_Python_Html_Web Scraping_Beautifulsoup - Fatal编程技术网

Python “美丽集团”;属性错误:';非类型';对象没有属性';文本'&引用;

Python “美丽集团”;属性错误:';非类型';对象没有属性';文本'&引用;,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我在使用bs4进行web抓取,Python在有标记的情况下找不到标记。我怎样才能解决这个问题 我试图用类和id找到这个,但都失败了 有周期性的云层 上面是我试图从中提取的HTML代码: response=requests.get('https://www.google.com/search?hl=ja&ei=coGHXPWEIouUr7wPo9ixoAg&q=%EC%9D%BC%EB%B3%B8+%7%C%9%E5%E5%E5%E5%6%6%6%6%1%1%6%6%6%6%7%6%7%7%7

我在使用bs4进行web抓取,Python在有标记的情况下找不到标记。我怎样才能解决这个问题

我试图用
类和
id找到这个
,但都失败了


有周期性的云层
上面是我试图从中提取的HTML代码:

response=requests.get('https://www.google.com/search?hl=ja&ei=coGHXPWEIouUr7wPo9ixoAg&q=%EC%9D%BC%EB%B3%B8+%7%C%9%E5%E5%E5%E5%6%6%6%6%1%1%6%6%6%6%7%6%7%7%7%7%7%7%7%7%7%7%7%7%7%7%6%6%6%6%6%6%6%6%6%6%6%6%7%6%6%7%7%6%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7%7 D%BC+%EB%82%A0%EC%94%A8&gs_l=psy-ab.3…232674.234409..234575..0.0..0.251.929.0j6j1..0..1..gws wiz..35i39.YU0YE6NCMS')
soup=BeautifulSoup(response.content'html.parser')
明天天气=汤。查找('span',{'id':'wob\u dc')。文本
但此代码失败,错误为:

Traceback (most recent call last):
  File "C:\Users\sungn_000\Desktop\weather.py", line 23, in <module>
    tomorrow_weather = soup.find('span', {'id': 'wob_dc'}).text
AttributeError: 'NoneType' object has no attribute 'text'
回溯(最近一次呼叫最后一次):
文件“C:\Users\sungn\u 000\Desktop\weather.py”,第23行,在
明天天气=汤。查找('span',{'id':'wob\u dc')。文本
AttributeError:“非类型”对象没有属性“文本”
请解决此错误。

>>来自bs4导入组
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(a)
>>> a
'<div id="wob_dcp">\n    <span class="vk_gy vk_sh" id="wob_dc">Clear with periodic clouds</span>    \n</div>'
>>> soup.find("span", id="wob_dc").text
'Clear with periodic clouds'
>>>汤=美汤(a) >>>a “\n清除周期性云\n” >>>soup.find(“span”,id=“wob_dc”).text “周期性云层清晰”

试试看。

这是因为天气部分是由浏览器通过JavaScript呈现的。因此,当您使用
请求时,
只会得到页面的HTML内容,而没有您需要的内容。 如果您想使用web浏览器呈现的元素解析页面,您应该使用例如
selenium
(或
请求html

from bs4 import BeautifulSoup
from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://www.google.com/search?hl=en&ei=coGHXPWEIouUr7wPo9ixoAg&q=%EC%9D%BC%EB%B3%B8%20%E6%A1%9C%E5%B7%9D%E5%B8%82%E7%9C%9F%E5%A3%81%E7%94%BA%E5%8F%A4%E5%9F%8E%20%EB%82%B4%EC%9D%BC%20%EB%82%A0%EC%94%A8&oq=%EC%9D%BC%EB%B3%B8%20%E6%A1%9C%E5%B7%9D%E5%B8%82%E7%9C%9F%E5%A3%81%E7%94%BA%E5%8F%A4%E5%9F%8E%20%EB%82%B4%EC%9D%BC%20%EB%82%A0%EC%94%A8&gs_l=psy-ab.3...232674.234409..234575...0.0..0.251.929.0j6j1......0....1..gws-wiz.......35i39.yu0YE6lnCms')
soup = BeautifulSoup(response.content, 'html.parser')

tomorrow_weather = soup.find('span', {'id': 'wob_dc'}).text
print(tomorrow_weather)
输出:

pawel@pawel-XPS-15-9570:~$ python test.py
Clear with periodic clouds
我也有这个问题。 你不应该这样进口

from bs4 import BeautifulSoup
from bs4 import * 
你应该像这样进口

from bs4 import BeautifulSoup
from bs4 import * 

这应该有效。

请发布页面的有效url,而不是微图像。谢谢!仍然无法复制它:您可以使用Chrome。Chrome对我也不起作用。它应该获得实际页面还是仅搜索结果?当我检查时,该id不存在。显然这是有效的,但这不是问题的答案。他要求使用
请求
。如果你检查response.content of request.get,你将在内容中找不到span。这是因为Javascript呈现HTML,而你没有得到你想要的。非常感谢!使用
请求HTML
,它终于起作用了!你的方法从
bs4
和mi导入所有依赖项ght甚至会导入可能未使用的依赖项。因此,理想情况下,只应从模块导入所需的依赖项。