2016-11-08 3 views
0

私は自分の必要性をすべて満たしていて、その後4日間の休憩後に使用しようとしましたが、TAがいくつかのタグを変更して、適切な変更を加えたが、以前と同じように動作させることができなかった。私は要素内の 'content'タグの値を取得したい。 これは要素です:タグ 'content'はもう印刷できません

for bubs in data.findAll('div',{'class':"prw_rup prw_common_bubble_rating bubble_rating"}): 
       print([img["content"] for img in bubs.select("img[content]")]) 

が、今、それは私だけの代わりに「5」であるコンテンツの「[]」は空を与える:

<div class="prw_rup prw_common_bubble_rating bubble_rating" data-prwidget-init="" data-prwidget-name="common_bubble_rating"><span alt="5 of 5 bubbles" class="ui_bubble_rating bubble_50" content="5" property="ratingValue" style="font-size:18px;"></span></div> 

、ここではコードです。 何が変更された可能性がありますか?ここ

content="5"属性を持つ要素がspan、ないimgである私のコード

import urllib 
 
import urllib.request 
 
from bs4 import BeautifulSoup 
 
import re 
 
import os 
 
from selenium import webdriver 
 
from selenium.webdriver.common.keys import Keys 
 
theurl = "https://www.tripadvisor.com/Hotels-g147364-c3-Cayman_Islands-Hotels.html" 
 
thepage = urllib 
 
thepage = urllib.request.urlopen(theurl) 
 
soup = BeautifulSoup(thepage, "html.parser") 
 
base_url = "https://www.tripadvisor.com" 
 
urls = [] 
 
init_info = [] 
 
init_data = open('/Users/paribaker/Desktop/scrapping/TripAdvisor/Inv/speccaydata.txt', 'w') 
 
for link in soup.findAll('a',href=re.compile('/Hotel_Review')): 
 
    urls.append(base_url + (link.get('href')).strip("#REVIEWS")) 
 
def remove_duplicates(urls): 
 
    output= [] 
 
    seen = set() 
 
    for line in urls: 
 
     if line not in seen: 
 
      output.append(line) 
 
      seen.add(line) 
 
    return output 
 
urls2 = remove_duplicates(urls) 
 
for url in urls2: 
 
    try: 
 
     driver = webdriver.Chrome() 
 
     driver.get(url) 
 
     element = driver.find_element_by_id("taplc_prodp13n_hr_sur_review_filter_controls_0_filterLang_ALL").click() 
 
     print("succesfull") 
 
     moreinfo = driver.page_source 
 
     moresoup = BeautifulSoup(moreinfo,"html.parser") 
 
     driver.close() 
 
    #moreinfo = urllib 
 
    #moreinfo = urllib.request.urlopen(url) 
 
    #moresoup = BeautifulSoup(moreinfo,"html.parser") 
 
    except: 
 
     print("none") 
 
    for data in moresoup.findAll('div', {"class":"heading_2014 hr_heading"}): 
 
     try: 
 
      for title in data.findAll('h1',{'id':"HEADING"}): 
 
       init_info.append(title.text.strip("\n")+ ",\t") 
 
      for add_data in data.findAll('span',{'class':'format_address'}): 
 
       print((add_data.find('span',{'class':'street-address'}).text +",\t")) 
 
       init_info.append(add_data.find('span',{'class':'street-address'}).text +",\t") 
 
       init_info.append(add_data.find('span',{'class':'locality'}).text + ",\t") 
 
       init_info.append(add_data.find('span',{'class':'country-name'}).text + ",\t") 
 
      for reviews in data.findAll('a',{'class':'more taLnk'}): 
 
       init_info.append(reviews.text).strip("\n") 
 
       init_info.append(", \t") 
 
      #init_info.append([img["alt"] for img in stars.select("img[alt]")]) 
 
      #init_info.append([img["content"] for img in stars.select("img[content]")]) 
 
     except : 
 
      init_info.append("N/A" + ", /t")

+0

あなたはHTMLを解析するために何を使用していますか? (正確に 'data'とは何ですか?) – glibdud

+0

私はBS4を使っていますが、私も特定の関数用のSeleniumパーサを持っています。 –

+0

インポートurllibは BS4インポートBeautifulSoupから urllib.requestインポートselenium.webdriver.common.keysインポートキーから webdriverをセレンインポートから インポートOS 再インポート –

答えて

1

の残りの部分です。

これはお望みのものですか?

for bubs in data.findAll('div',{'class':"prw_rup prw_common_bubble_rating bubble_rating"}): 
      print([elem["content"] for elem in bubs.select("span[content]")]) 
+0

ああ!はい、それは、私はそれを試してみましたが、私は思っていませんでした。 –

関連する問題