私はレストランのレビューを照合しようとしています。Urllib2はレビューの最初のページでは正常に機能しますが、JavaScriptリンクであるコメントの次の増分をロードするためのリンクがあります。サンプルページはここにあり、リンク「Next25」のコードは次のとおりです。
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$RestRatings$Next','')" class="red" id="ctl00_ContentPlaceHolder1_RestRatings_Next">NEXT 25>> </a>
私は以前のすべての答え(例えば)を見てきました、そして私は私が賢明ではないと言わなければなりません。Firebugでコンソールを見ると、便利なリンクが表示されません。これを達成するための最良の(最も簡単な)方法を提案できますか?
編集:Seleniumnewbieのおかげで、このコードはレビューからのすべてのコメントを出力します。:
from selenium import webdriver
from BeautifulSoup import BeautifulSoup
import re
driver = webdriver.Firefox()
def getURLinfo(url):
driver.get(url)
html = driver.page_source
next25 = "ctl00_ContentPlaceHolder1_RestRatings_Next"
soup = BeautifulSoup(html)
while soup.find(id=re.compile(next25)):
driver.find_element_by_id(next25).click()
html = html + driver.page_source
soup = BeautifulSoup(driver.page_source)
soup = BeautifulSoup(html)
comment = soup.findAll(id=re.compile("divComment"))
for entry in comment:
print entry.div.contents #for comments
driver.close()