わかりましたので、私は現在、その後、HTMLのレスポンスを出力し、ウェブサイトへのPOSTリクエストを送信するよ、私はページ全体print
にしたくない、いくつかのdiv括弧内だけで特定のコンテンツ..Pythonのurllib2の応答
の例では、私はこれを行うだろうか、
<td align="right"> example </td>
はので、私は唯一のTD括弧内の出力「例」にしたい出力にしたいですか?
わかりましたので、私は現在、その後、HTMLのレスポンスを出力し、ウェブサイトへのPOSTリクエストを送信するよ、私はページ全体print
にしたくない、いくつかのdiv括弧内だけで特定のコンテンツ..Pythonのurllib2の応答
の例では、私はこれを行うだろうか、
<td align="right"> example </td>
はので、私は唯一のTD括弧内の出力「例」にしたい出力にしたいですか?
私は、あなたがPython /プログラミングの一般的な話であることを前提としています。
requests
は、より使いやすいので、urllib2
に組み込まれています。
要素の選択については、beautifulsoup
は最も単純なライブラリの1つです。
の両方がインストールが簡単です:
pip install requests
pip install beautifulsoup4
コード:
import requests
from bs4 import BeautifulSoup
url = 'https://en.wikibooks.org/wiki/Unicode/List_of_useful_symbols'
r = requests.get(url)
soup = BeautifulSoup(r.text)
tds = soup.findAll("td") # you can extract tags like <div> as well
print(tds)
td_texts = [td.text for td in tds] # in case you are interested in the text only
出力:
[<td style="vertical-align:top">§</td>, <td> 00A7 section</td>, <td style="vertical-align:top">¶</td>, <td> 00B6 paragraph</td>, <td style="vertical-align:top">·</td>,
ありがとうございます:)私が欲しかったのと同じように働きました。 –
@jakereadingようこそ。 Stackoverflowへようこそ! –
HTMLParserはこのタスク用に設計されています。 HTMLレスポンス・ページ全体にフィードすることができます。次に、タグ(タグが属性 "right"を持つtdタグであることを確認する)のエントリのメソッド(サブクラスでオーバーライドする)を呼び出し、データの別のメソッド文字列「例」とは、データのメソッドで何をやって停止するために使用することができます終了タグ(のための別の方法
私はHTMLParserを愛し、それをチェックアウト
スケッチの例を追加して編集:。。。
class MyParser(HTMLParser):
# Looking for <td class="example">
# data here
# </td>
def __init__(self):
super(MyParser, self).__init__()
self.in_td = False
self.data = ''
def handle_starttag(self, tag, attrs):
if tag != 'td':
return
d = dict(attrs)
if 'class' in d and d['class'] == 'example':
self.in_td = True
def handle_endtag(self, tag):
if tag=='td' and self.in_td:
self.in_td = False
print("Found this data: {}".format(self.data))
def handle_data(self, data):
if self.in_td:
self.data += data
あなたはbeautifulsoupを調べることをお勧めします。 CSSなどで要素を選択できます。 –
'BeautifulSoup'を試すことができます。 – stamaimer