Questions tagged «beautifulsoup»

Beautiful Soup是用于解析HTML / XML的Python包。该软件包的最新版本是版本4,导入为bs4。

28
UnicodeEncodeError:'ascii'编解码器无法在位置20编码字符u'\ xa0':序数不在范围内(128)
我在处理从不同网页(在不同站点上)获取的文本中的unicode字符时遇到问题。我正在使用BeautifulSoup。 问题是错误并非总是可重现的。它有时可以在某些页面上使用,有时它会通过抛出来发声UnicodeEncodeError。我已经尝试了几乎所有我能想到的东西,但是没有找到任何能正常工作而不抛出某种与Unicode相关的错误的东西。 导致问题的代码部分之一如下所示: agent_telno = agent.find('div', 'agent_contact_number') agent_telno = '' if agent_telno is None else agent_telno.contents[0] p.agent_info = str(agent_contact + ' ' + agent_telno).strip() 这是运行上述代码段时在某些字符串上生成的堆栈跟踪: Traceback (most recent call last): File "foobar.py", line 792, in <module> p.agent_info = str(agent_contact + ' ' + agent_telno).strip() UnicodeEncodeError: 'ascii' codec can't encode character …

16
如何按类别查找元素
我在使用Beautifulsoup解析具有“ class”属性的HTML元素时遇到了麻烦。代码看起来像这样 soup = BeautifulSoup(sdata) mydivs = soup.findAll('div') for div in mydivs: if (div["class"] == "stylelistrow"): print div 脚本完成后的同一行出现错误。 File "./beautifulcoding.py", line 130, in getlanguage if (div["class"] == "stylelistrow"): File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__ return self._getAttrMap()[key] KeyError: 'class' 我如何摆脱这个错误?

12
bs4.FeatureNotFound:找不到具有您请求的功能的树构建器:lxml。您需要安装解析器库吗?
... soup = BeautifulSoup(html, "lxml") File "/Library/Python/2.7/site-packages/bs4/__init__.py", line 152, in __init__ % ",".join(features)) bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? 以上输出在我的终端上。我在Mac OS 10.7.x上。我有Python 2.7.1,并按照本教程操作获得了Beautiful Soup和lxml,它们都已成功安装并与位于此处的单独测试文件一起使用。在导致此错误的Python脚本中,我包含以下行: from pageCrawler import comparePages 在pageCrawler文件中,我包含以下两行: from bs4 import BeautifulSoup from urllib2 import …

6
UnicodeEncodeError:“ charmap”编解码器无法编码字符
我正在尝试抓取一个网站,但这给我一个错误。 我正在使用以下代码: import urllib.request from bs4 import BeautifulSoup get = urllib.request.urlopen("https://www.website.com/") html = get.read() soup = BeautifulSoup(html) print(soup) 我收到以下错误: File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 70924-70950: character maps to <undefined> 我该怎么做才能解决此问题?

5
TypeError:需要一个类似字节的对象,而在python和CSV中不是'str'
TypeError:需要一个类似字节的对象,而不是'str' 在执行以下python代码以将HTML表格数据保存到Csv文件时遇到上述错误。不知道如何获得rideup.pls帮助我。 import csv import requests from bs4 import BeautifulSoup url='http://www.mapsofindia.com/districts-india/' response=requests.get(url) html=response.content soup=BeautifulSoup(html,'html.parser') table=soup.find('table', attrs={'class':'tableizer-table'}) list_of_rows=[] for row in table.findAll('tr')[1:]: list_of_cells=[] for cell in row.findAll('td'): list_of_cells.append(cell.text) list_of_rows.append(list_of_cells) outfile=open('./immates.csv','wb') writer=csv.writer(outfile) writer.writerow(["SNo", "States", "Dist", "Population"]) writer.writerows(list_of_rows) 在最后一行上方。

11
美丽的汤并通过ID提取div及其内容
soup.find("tagName", { "id" : "articlebody" }) 为什么这不返回<div id="articlebody"> ... </div>标签和中间的东西?它什么也不返回。我知道一个事实,因为我正盯着它 soup.prettify() soup.find("div", { "id" : "articlebody" }) 也行不通。 (编辑:我发现BeautifulSoup无法正确解析我的页面,这可能意味着我尝试解析的页面在SGML或其他格式中未正确格式化)




10
BeautifulSoup抓取可见网页文本
基本上,我想使用BeautifulSoup来严格抓取网页上的可见文本。例如,此网页是我的测试用例。我主要想获取正文文本(文章),甚至在这里和那里甚至几个标签名称。我尝试了这个SO问题中的建议,该建议返回很多<script>我不想要的标签和html注释。我无法弄清楚该函数所需的参数findAll(),以便仅获取网页上的可见文本。 那么,我应该如何查找除脚本,注释,CSS等之外的所有可见文本?

17
报废:SSL:http://en.wikipedia.org的CERTIFICATE_VERIFY_FAILED错误
我正在练习“使用Python进行网页搜刮”中的代码,但始终遇到此证书问题: from urllib.request import urlopen from bs4 import BeautifulSoup import re pages = set() def getLinks(pageUrl): global pages html = urlopen("http://en.wikipedia.org"+pageUrl) bsObj = BeautifulSoup(html) for link in bsObj.findAll("a", href=re.compile("^(/wiki/)")): if 'href' in link.attrs: if link.attrs['href'] not in pages: #We have encountered a new page newPage = link.attrs['href'] print(newPage) pages.add(newPage) getLinks(newPage) …

6
如何使用BeautifulSoup查找节点的子节点
我想获取所有<a>属于以下子项的标签<li>: <div> <li class="test"> <a>link1</a> <ul> <li> <a>link2</a> </li> </ul> </li> </div> 我知道如何找到像这样的特定类的元素: soup.find("li", { "class" : "test" }) 但是我不知道如何找到所有<a>的孩子的孩子,<li class=test>而不是其他孩子的孩子。 就像我想选择: <a>link1</a>

6
使用beautifulsoup提取属性值
我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码: import urllib f = urllib.urlopen("http://58.68.130.147") s = f.read() f.close() from BeautifulSoup import BeautifulStoneSoup soup = BeautifulStoneSoup(s) inputTag = soup.findAll(attrs={"name" : "stainfo"}) output = inputTag['value'] print str(output) 我收到TypeError:列表索引必须是整数,而不是str 即使从Beautifulsoup文档中我了解到字符串在这里也不应该成为问题...但是我没有专家,我可能会误解了。 任何建议,不胜感激!提前致谢。

9
我们可以将xpath与BeautifulSoup一起使用吗?
我正在使用BeautifulSoup抓取网址,并且我有以下代码 import urllib import urllib2 from BeautifulSoup import BeautifulSoup url = "http://www.example.com/servlet/av/ResultTemplate=AVResult.html" req = urllib2.Request(url) response = urllib2.urlopen(req) the_page = response.read() soup = BeautifulSoup(the_page) soup.findAll('td',attrs={'class':'empformbody'}) 现在在上面的代码中,我们可以findAll用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以便提供更多帮助吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.