Python 美丽的群拉屎问题
我试图用beautifulsoup解析youtube,但运气不好。 我已经分析了许多网站,它们都很完美,但这个网站不起作用,给了我这个错误:Python 美丽的群拉屎问题,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我试图用beautifulsoup解析youtube,但运气不好。 我已经分析了许多网站,它们都很完美,但这个网站不起作用,给了我这个错误: UnicodeEncodeError: 'charmap' codec can't encode character '\u2117' in position 135588: character maps to <undefined> 我仍然得到上面的错误。 但当我尝试这个: 代码: 通过对其进行编码,我可以打印出我的网页,但当我按以下方式搜
UnicodeEncodeError: 'charmap' codec can't encode character '\u2117' in position 135588: character maps to <undefined>
我仍然得到上面的错误。
但当我尝试这个:
代码:
通过对其进行编码,我可以打印出我的网页,但当我按以下方式搜索时:
page_soup = soup(page_html.decode("utf-8"), "html.parser")
x = page_soup.find('div',{'id':"dismissable"})
search_list = page_soup.find_all('div',{'class':"style-scope ytd-video-renderer"})
print(len(search_list))
我得到以下错误:
TypeError: slice indices must be integers or None or have an __index__ method
欢迎提供任何建议
非常感谢
此外,我的代码:
import urllib3
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen
import requests
http = urllib3.PoolManager()
set_Link = set([''])
url = 'https://www.youtube.com/results?search_query=the+lumineers+sleep+on+the+floor'
r = http.request('get',url)
page_html = r.data #html data opslaan in variabele
page_soup = soup(page_html, "html.parser").encode("utf-8")
print(page_soup)
search_list = page_soup.find_all('div',{'class':"style-scope ytd-video-renderer"})
print(len(search_list))
您的代码在错误的位置应用了
decode()
,因此出现了异常:
page_soup = soup(page_html.decode("utf-8"), "html.parser")
您的代码在错误的位置应用了
decode()
,因此出现了异常:
page_soup = soup(page_html.decode("utf-8"), "html.parser")
对于问题的前半部分,请给出一些建议-您应该使用“unicode三明治”方法,这样可以避免很多挫折:
- 如果您想
something,请使用print()
print(repr(string))
print(repr(string))
以避免编码问题,并将数据保存在unicode中直到结束
也就是说,不要这样做:
page\u soup=soup(page\u html,“html.parser”).encode(“utf-8”)
只是为了打印出结果。只是对你问题的前半部分的一些建议-你应该使用“unicode三明治”方法,省去很多挫折:
- 如果您想
something,请使用print()
print(repr(string))
print(repr(string))
以避免编码问题,并将数据保存在unicode中直到结束
也就是说,不要这样做:
page\u soup=soup(page\u html,“html.parser”)。编码(“utf-8”)
只是为了打印结果。谢谢您的回答。我完全按照你说的做了,但仍然得到了相同的错误:UnicodeEncodeError:“charmap”编解码器无法对149996位置的字符“\u2117”进行编码:字符映射到,这意味着页面不在utf-8
(可能是一些旧的MS Windows编码?)。看看这篇关于检测编码的文章。我在其中挖掘了一些细节,但在我看来,我想要收集的数据不可用,因为它背后有javascript=/我必须使用youtube API谢谢你的回答。我完全按照你说的做了,但仍然得到了相同的错误:UnicodeEncodeError:“charmap”编解码器无法对149996位置的字符“\u2117”进行编码:字符映射到,这意味着页面不在utf-8
(可能是一些旧的MS Windows编码?)。看看这篇关于检测编码的文章。我在其中挖掘了一些细节,但在我看来,我想要收集的数据是不可用的,因为它背后有javascript=/我必须使用youtube API谢谢你,先生!我必须承认,我不知道“unicode三明治”的伟大建议!谢谢你,先生!我必须承认,我不知道“unicode三明治”的伟大建议!