soup.find('div', class_="pc_1 pc_2 pc_3")这样的语句中,class三个参数之间有空格,是soup无法find到数据的原因么?
在BeautifulSoup的find方法中,class参数是用来匹配HTML标签的class属性的。当参数中的class值包含多个类名时,每个类名之间应该用空格分隔。所以,参数中使用空格分隔多个类名是正确的用法,不会导致soup无法找到数据。
问题可能出在以下几个方面:
- 被查找的HTML标签不包含指定的class属性。
- 被查找的HTML标签中的class属性值与指定的class参数不完全匹配。
- 使用了其他参数导致无法找到数据。
以检查一下HTML标签中的class属性值以及其他参数是否正确,或者提供更多的代码和HTML内容以便我能够更好地帮助你。
div = soup.find('div', class_='pc_temp_songlist pc_rank_songlist_short')上面的语句中,class的两个参数之间有两个空格,是soup无法find到数据的原因么?
不是的。在BeautifulSoup中,class是一个特殊属性,所以需要使用class_来表示。两个空格不会影响find方法的使用,只要class_的值与目标元素的class属性值匹配,即可成功找到对应的元素。正确的用法是使用class_参数传递class属性值,如下所示:
div = soup.find('div', class_='pc_tempt pc_rank_short')
上面的说法,连续两个空格的写法,不会导致无法find数据。实际上,加上两个连续的空格之后,数据真的找不到了。不信的话,你自己试试。并且,这两个空格并不是我可以加上的,是requests.get()获得的。尽管原始的数据中是两个连续的空格,去掉一个之后,依然可以获取数据。加上之后,数据就“消失”了。是不是只有我自己遇到这样的问题?