我是python语言的新手。如标题中所述,我正在尝试从此网页获取所有链接:
尝试使用以下页面上的python脚本查找所有链接:https://web.archive.org/web/ * / http://bankier.pl/
我最感兴趣的链接包含在这样的部分
年-月-星期-天
在年/月/周/日的所有链接(或某个范围内)中查找特定短语的最佳选择,或者至少是下载链接并在本地“ grep”它的最佳选择。
到目前为止,我已经尝试使用beautifulSoup和硒,但是从来没有接近收集到我最感兴趣的东西。 似乎这些链接位于“较低级别”,而我的脚本无法收集它们。
非常感谢您的帮助。
这是我的尝试:
#############################
######bs4 script#############
#############################
import requests
from bs4 import BeautifulSoup
url = 'https://web.archive.org/web/*/http://bankier.pl/'
r = requests.get(url)
html_content = r.text
soup = BeautifulSoup(html_content, 'lxml')
links = [a.get('href') for a in soup.find_all('a', href=True)]
print(links)
这:
#############################
######selenium script########
#############################
from selenium import webdriver
driver = webdriver.Chrome('/home/grzegorz/Documents/Techniczne/Skrypty/Python/Vulture/niewywalac/chromedriver')
driver.get('https://web.archive.org/web/*/http://bankier.pl/')
links = driver.find_elements_by_xpath('.//span[@class="file"]/a')
len(links)
for link in links:
link.get_attribute('href')
...但是这些都不打印我需要的链接(因此http://www.bankier.pl网页是从特定日期开始的。)
答案 0 :(得分:0)
您可以使用下面用Java编写的代码来获取各自的输出。
driver.get("https://web.archive.org/web/*/http://bankier.pl/");
List<String> url = new ArrayList<String>();
List<WebElement> link = driver.findElements(By.cssSelector(".month-week .month-day div div[class='captures'] a"));
for(WebElement Url : link) {
url.add(Url.getAttribute("href"));
}
*system.out.println(url.size())* // get total link
Iterator itr=url.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
答案 1 :(得分:0)
...但是这些都不打印出我需要的链接
您正在这样做:
for link in links:
link.get_attribute('href')
作为脚本运行时将不会显示任何内容。
您的意思是这样的吗?:
for link in links:
href = link.get_attribute('href')
print(href)
答案 2 :(得分:0)
不幸的是,现在,当您将鼠标悬停一天时,我看不到一种获取所提供网址的方法,但是这样做至少可以从每个可用的报废日期中获取第一个网址:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome()
url = 'https://web.archive.org/web/*/http://bankier.pl/'
driver.get(url)
WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.XPATH, """//*[@id="wb-calendar"]
""")))
captures = driver.find_elements_by_xpath("""//*[@id="wb-
calendar"]/div/div/div/div/div/div/div/a
""")
for capture in captures:
print capture.get_attribute("href")
driver.quit()
让我知道是否有帮助。 祝你好运!