2017-11-19 6 views
-2

私は1ページを削っていますが、今日問題となったのは、ページに別のページがなく、前のページにエラーがなく、最後のページであると判断できたということでした。 。元のためセレンの他のページ

https://example/page-7 私はに行きたい:https://example/page-8 doesnの `tそれは私に 最後のページ与えますが存在します。https://example/page-7

私はhttps://example/page-7はのpython3を使用して最後のページだったことを決定することができるどのように? ?最初に私が収集したデータのdublicatesをチェックすることを考えましたが、これはあまりにも遅い原因である

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from bs4 import BeautifulSoup 
import urllib.request 

page = "https://www.supermama.lt/forumas/topic/214375-vilma/page-1" 

driver = webdriver.Firefox() 
driver.get(page) 
dd = driver.page_source 

for j in range(100): 
    soup = BeautifulSoup(dd, "html.parser") 
    my_text = list(soup.findAll("div", class_ = "post-content")) 
    for i in my_text: 
     #collect some data 
     pass 

    page = "https://www.supermama.lt/forumas/topic/214375-vilma/page{0}".format(j+2) 
    driver.get(page) 
    dd = driver.page_source 

私は、データを収集する必要があり、そこから30の000のリンクを持っています。たぶん簡単な解決策がありますか?

+0

最初にコードを試してみてください –

答えて

0

私自身の質問に対する答えが見つかりました。 ページのURLを見つけるには、driver.current_urlを使用してください。

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from bs4 import BeautifulSoup 
import urllib.request 

page = "https://www.supermama.lt/forumas/topic/214375-vilma/" 

driver = webdriver.Firefox() 
driver.get(page) 

dd = driver.page_source 

current_pages = [] 

for j in range(100): 

    page_url = driver.current_url 

    if(page_url not in current_pages): 
     current_pages.append(page_url) 

     soup = BeautifulSoup(dd, "html.parser") 
     my_text = list(soup.findAll("div", class_ = "post-content")) 
     for i in my_text: 
      #collect some data 
      pass 

     page = "https://www.supermama.lt/forumas/topic/214375-vilma/page-{0}".format(j+2) 
     driver.get(page) 
     dd = driver.page_source 

    else: 
     print(current_pages) 
     driver.quit() 
     break 
関連する問題