私は私の現在のpythonプロジェクトに美しいものを実装するのに苦労しています。そうですね。これをそのままにしておくと、私の現在のスクリプトの複雑さを減らすことができます。Python urllib2 + Beautifulsoup
BeautifulSoupせずにスクリプト -
import urllib2
def check(self, name, proxy):
urllib2.install_opener(
urllib2.build_opener(
urllib2.ProxyHandler({'http': 'http://%s' % proxy}),
urllib2.HTTPHandler()
)
)
req = urllib2.Request('http://example.com' ,"param=1")
try:
resp = urllib2.urlopen(req)
except:
self.insert()
try:
if 'example text' in resp.read()
print 'success'
今のコースインデントが間違っているあなたが簡単な言葉で、私は "へのPOSTリクエストを送信していますすることができますように、これはちょうど、私が起こっているかのアップスケッチしていますexample.com "& example.comにresp.read print successに" example text "が含まれているとします。
しかし、私は実際に欲しいのは、その後TD内部出力 テキストは私がbeautifulsoupを実装しています方法がない今
soup.find_all('td', {'align':'right'})[4]
を使用してexample.comからの要求を揃える
if ' example ' in resp.read()
をチェックすることです作業中、この例 -
import urllib2
from bs4 import BeautifulSoup as soup
main_div = soup.find_all('td', {'align':'right'})[4]
def check(self, name, proxy):
urllib2.install_opener(
urllib2.build_opener(
urllib2.ProxyHandler({'http': 'http://%s' % proxy}),
urllib2.HTTPHandler()
)
)
req = urllib2.Request('http://example.com' ,"param=1")
try:
resp = urllib2.urlopen(req)
web_soup = soup(urllib2.urlopen(req), 'html.parser')
except:
self.insert()
try:
if 'example text' in resp.read()
print 'success' + main_div
これで、4つの新しいライン/調整
from bs4 import BeautifulSoup as soup
web_soup = soup(urllib2.urlopen(url), 'html.parser')
main_div = soup.find_all('td', {'align':'right'})[4]
aswell as " + main_div " on print
それだけで動作していないようですが、私は、そのうちのいくつかを調整しながら、いくつかのエラーを持っていた& "の未結合方式のfind_all「割り当ての前に、参照ローカル変数は」と呼ばれなければならないと述べています最初の引数としてbeautifulsoupインスタンス "あなたの最後のコードスニペットについて
最小限の例を示してください。また、あなたのpythonコードを正しくインデントしてみてください。 最後のコード例については、 'web_soup'変数' web_soup.find_all( 'td'、{'align': 'right'}) 'で' find_all'を呼び出す必要があります。 – johannesmik
私はそれがちょうどスケッチアップであり、インデントが間違っていたと述べましたが、私は主に、インデントに関係なく、これをどのようにまとめるかを知りたいと思います。 switch main_div =スープからmain_div = web_soup? – user3255841
質問に答えるには、他の人があなたの問題を理解できるような最小限の例を提示する必要があります。 3つのスニペットを用意しましたが、すべてが不完全であるか間違ったインデントがあるため、問題を再構築するのが非常に難しいです。 – johannesmik