簡體   English   中英

如何使用python在imdb中按“加載更多”以獲取更多評論

[英]How to use python to press the “load more” in imdb to get more reviews

我現在正在創建一個Web搜尋器,我想從imdb中抓取用戶評論。 從原始頁面直接獲得10條評論和評分很容易。 例如http://www.imdb.com/title/tt1392170/reviews問題是要獲取所有評論,我需要按“加載更多”,以便在URL地址不變的情況下顯示更多評論! 所以我不知道如何在Python3中獲得所有評論。 我現在使用的是bs4請求。

我的代碼現在:

from urllib.request import urlopen, urlretrieve
from bs4 import BeautifulSoup


url_link='http://www.imdb.com/title/tt0371746/reviews?ref_=tt_urv'
html=urlopen(url_link)

content_bs=BeautifulSoup(html)

for b in content_bs.find_all('div',class_='text'):
print(b)

for rate_score in content_bs.find_all('span',class_='rating-other-user-rating'):
print(rate_score)

您必須先啟動click事件,才能按下“加載更多”按鈕。 但是, BeautifulSoup沒有該屬性。 但是,您可以采取的措施來獲取全部內容,就像我在下面演示的那樣。 它將為您獲取所有review title以及reviews

import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup

url = 'http://www.imdb.com/title/tt0371746/reviews?ref_=tt_urv'
res = requests.get(url)
soup = BeautifulSoup(res.text,"lxml")

main_content = urljoin(url,soup.select(".load-more-data")[0]['data-ajaxurl'])  ##extracting the link leading to the page containing everything available here
response = requests.get(main_content)
broth = BeautifulSoup(response.text,"lxml")

for item in broth.select(".review-container"):
    title = item.select(".title")[0].text
    review = item.select(".text")[0].text
    print("Title: {}\n\nReview: {}\n\n".format(title,review))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM