Записывать URL-адреса с python - PullRequest
0 голосов
/ 16 июня 2020

вот код:

from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Firefox()
url = 'https://www.coteur.com/cotes-foot.php'
driver.get(url)

links = driver.find_elements_by_xpath('//a[contains(@href, "match/cotes-")]')

driver.close()

Я хочу удалить все URL-ссылки, связанные с футбольными играми с этого сайта: https://www.coteur.com/cotes-foot.php

I всегда выбрасывайте все остатки футбольных матчей. Но как я могу извлечь URL-адрес, связанный с этими футбольными играми

Ответы [ 3 ]

1 голос
/ 16 июня 2020

вы получаете веб-элементы с find_elements_by_xpath, вам нужно получить href от него

from selenium import webdriver

driver = webdriver.Firefox()
url = 'https://www.coteur.com/cotes-foot.php'
driver.get(url)

links = []
for i in driver.find_elements_by_xpath('//a[contains(@href, "match/cotes-")]'):
    links.append(i.get_attribute('href'))

print(links)
driver.close()
0 голосов
/ 16 июня 2020

Я пробовал это:

n = 0
while n < len(links):
   links[n] = links[n].text
   n = n + 1

print(links)

driver.findElement(By.linkText(link[1])).click()

Вот результат:

hao@hao-ThinkPad-T420:~$ ./coteur2.py
['FS METTA/LU - JPFS/FK Spartaks', 'Fc Ararat Erevan - Lori Vanadzor', 'Stabaek If - Mjondalen', 'Viking - FK BODO/GLIMT', 'Aalesund - Molde', 'Odd Ballklubb Grenland - Sandefjord', 'Rosenborg - Kristiansund Bk', 'Ac Horsens - Esbjerg Fb', 'Fk Sutjeska Niksic - Ofk Titograd', 'FK Tukums 2000/Tss - Fk Jelgava', 'Borrusia Monch. - Vfl Wolfsburg', 'Fc Admira Wacker Modling - Scr Altach', 'Skn St. Pölten - Sv Mattersburg', 'Sv Wehen Wiesbaden - 1. Fc Nuremberg', 'Hambourg Sv - Vfl Osnabrück', 'Greuther Furth - 1. Fc Heidenheim 1846', 'Tallinna Jk Legion - Jk Tulevik Viljandi', 'Hnk Hajduk Split - Nk Varteks Varazdin', 'Nk Istra 1961 Pula - Inter Zapresic', 'Sepsi Osk Sfantu Gheorghe - Voluntari', 'Varda Se - Zalaegerszeg Te', 'Nd Mura 05 - Nk Celje', 'Ab Argir - EB/STREYMUR', 'Villarreal - Real Majorque', 'Getafe - Espanyol']
Traceback (most recent call last):
  File "./coteur2.py", line 23, in <module>
    driver.findElement(By.linkText(link[1])).click()
AttributeError: 'WebDriver' object has no attribute 'findElement'
0 голосов
/ 16 июня 2020

Попробуйте следующее:

import urllib.request, urllib.error, urllib.parse  #Import required modules
from bs4 import BeautifulSoup
import ssl

ctx=ssl.create_default_context()  #Check certificates, you can skip this for some 
                                   #websites 
ctx.check_hostname=False
ctx.verify_mode=ssl.CERT_NONE

userInput=input("Enter URL: ")
url=userInput if len(userInput)!=0 else "https://www.coteur.com/cotes-foot.php"

html=urllib.request.urlopen(url, context=ctx).read()
soup=BeautifulSoup(html, "html.parser")

tags=soup("a")                       #Find all html "a" tags, and print
for tag in tags:                 #The "a" tag is used to create link
    print(tag.get("href", None))

Эта программа печатает все ссылки, найденные на странице

Если вам нужны только ссылки, связанные с футболом, вы можете изменить последнюю строку на:

if 'soccer' in tag.get("href", None):
    print(tag.get("href", None))


...