タグ付けされた質問 「beautifulsoup」

Beautiful Soupは、HTML / XMLを解析するためのPythonパッケージです。このパッケージの最新バージョンは、bs4としてインポートされたバージョン4です。

28
UnicodeEncodeError: 'ascii'コーデックは位置20の文字u '\ xa0'をエンコードできません:序数が範囲(128)にありません
(異なるサイトの)異なるWebページからフェッチされたテキストからのUnicode文字の処理に問題があります。BeautifulSoupを使用しています。 問題は、エラーが常に再現できるとは限らないことです。いくつかのページで動作することもあれば、をスローすることでbarfsすることもありUnicodeEncodeErrorます。考えられる限りのことをすべて試しましたが、何らかのUnicode関連のエラーをスローせずに一貫して機能するものは何も見つかりませんでした。 問題の原因となっているコードのセクションの1つを以下に示します。 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() 上記のスニペットが実行されたときにSOME文字列で生成されるスタックトレースは次のとおりです。 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ファイルに、次の2行を含めました。 from bs4 import BeautifulSoup from urllib2 import …

6
UnicodeEncodeError: 'charmap'コーデックは文字をエンコードできません
Webサイトをスクレイピングしようとしていますが、エラーが発生します。 次のコードを使用しています。 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'ではなく、バイトのようなオブジェクトが必要です CsvファイルにHTMLテーブルデータを保存するpythonコードの下で実行中に上記のエラーを取得します。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
美しいスープとdivとそのコンテンツをIDで抽出
soup.find("tagName", { "id" : "articlebody" }) なぜこれは<div id="articlebody"> ... </div>タグとその間のものを返さないのですか?何も返しません。そして私はそれが存在するという事実を知っています。 soup.prettify() soup.find("div", { "id" : "articlebody" }) また動作しません。 (編集: BeautifulSoupがページを正しく解析していないことがわかりました。おそらく、解析しようとしたページがSGMLなどで正しくフォーマットされていないことを意味します)


15
ImportError:bs4という名前のモジュールはありません(BeautifulSoup)
私はPythonで作業しており、Flaskを使用しています。コンピューターでメインのPythonファイルを実行すると完全に機能しますが、venvをアクティブにしてターミナルでFlask Pythonファイルを実行すると、メインのPythonファイルに「bs4という名前のモジュールがない」と表示されます。コメントやアドバイスは大歓迎です。


10
BeautifulSoup Grab Visible Webpage Text
基本的に、BeautifulSoupを使用して、Webページに表示されるテキストを厳密に取得します。たとえば、このウェブページは私のテストケースです。そして、私は主に本文テキスト(記事)を取得したいと思っています。このSOの質問で<script>、不要なタグやHTMLコメントを多数返す提案を試しました。findAll()Webページに表示されるテキストを取得するためだけに、関数に必要な引数を理解できません。 それで、スクリプト、コメント、CSSなどを除くすべての表示テキストをどのように見つければよいですか?

17
スクレイピング:SSL:http://en.wikipedia.orgのCERTIFICATE_VERIFY_FAILEDエラー
「Pythonを使用したWebスクレイピング」のコードを練習していますが、この証明書の問題が引き続き発生します。 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を使用して属性値を抽出する
Webページの特定の「input」タグで単一の「value」属性のコンテンツを抽出しようとしています。次のコードを使用します。 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
BeautifulPathでxpathを使用できますか?
BeautifulSoupを使用してURLをスクレイピングしており、次のコードがありました 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を使用したいと思います。BeautifulSoupでxpathを使用することは可能ですか?可能であれば、より役立つように、コードの例を誰かに教えてもらえますか?

7
Python:BeautifulSoup-名前属性に基づいて属性値を取得する
たとえば、名前に基づいて属性値を出力したい <META NAME="City" content="Austin"> このようなことをしたい soup = BeautifulSoup(f) //f is some HTML containing the above meta tag for meta_tag in soup('meta'): if meta_tag['name'] == 'City': print meta_tag['content'] 上記のコードはを提供しますがKeyError: 'name'、これは名前がBeatifulSoupによって使用されるため、キーワード引数として使用できないためと考えられます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.