2

1つのWebサイトで数ページのコンテンツを読みたいのですが、いくつかのページではコードは正常に機能しますが、残りのページでは機能しません。奇妙な文字が表示されます:Å、Ä…など。

articles = ""
url = "http://www.someurl.com"
sock = urllib.urlopen(url)

content = sock.read()
sock.close()
soup = BeautifulSoup(content)

div = soup.find("div", class_="col-d")
ps = div.find_all("p")
for p in ps:
    print type(p.get_text())
    print type(p.get_text().encode('utf-8'))
    print p.get_text()

出力は次のとおりです。

<type 'unicode'><type 'str'>różni się znacząco. Dziś, zgodnie z danymi Lion’s House i Home Brokera, przeciętnego  zapłacić niespełna 2,1 tys. zł miesięcznie. Gdyby taką samą nieruchomość kupić na kredyt, to w pierwszym roku część ods

これを機能させるための解決策を知っていますか?

4

1 に答える 1

2

これは、 Requestsライブラリ(およびランダムなポーランドのWebサイト)を使用するアプローチです。

import requests
from bs4 import BeautifulSoup

r = requests.get("http://pl.bab.la/slownik/polski-niemiecki/zgodnie-z")

soup = BeautifulSoup(r.text, fromEncoding="UTF-8")
soup.find(id="showMoreCSDiv").text

このコードはこのHTMLを検索します。

<div id="showMoreCSDiv"><a class="btn" id="showMoreCS" href="javascript:babGetMoreCS(20,'zgodnie z');">więcej</a></div>

これを返します:

więcej
于 2013-01-09T22:48:50.293 に答える