BeautifulSoup HREF возвращает пустую строку - PullRequest
0 голосов
/ 12 июня 2019

Я уверен, что это легко, но почему-то я застрял, чтобы получить ссылку href под тегом a, которая переходит на каждую страницу с описанием товара. Я также не вижу ни одного javascript Чего мне не хватает?

import requests
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pandas as pd

urls = [
    'https://undefeated.com/search?type=product&q=nike'
] 

 final = []
with requests.Session() as s:
    for url in urls:
        driver = webdriver.Chrome('/Users/Documents/python/Selenium/bin/chromedriver')
        driver.get(url)
        products = [element for element in WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='product-grid-item  ']")))]
        soup = bs(driver.page_source, 'lxml')
        time.sleep(1)
        href = soup.find_all['href']
        print(href)

Выход: []

Затем я попытался soup.find_all('a'), и он выполнил целую кучу, включая href Я ищу, но все еще не могу специально извлечь только href ...

1 Ответ

1 голос
/ 12 июня 2019

Вам просто нужно найти_все тег a и затем попытаться напечатать атрибут href.

Вы запрашиваете. Код сеанса должен выглядеть следующим образом:

with requests.Session() as s:
    for url in urls:
        driver = webdriver.Firefox()
        driver.get(url)
        products = [element for element in WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='product-grid-item  ']")))]
        soup = bs(driver.page_source, 'lxml')
        time.sleep(1)
        a_links = soup.find_all('a')
        for a in a_links:
            print(a.get('href'))

Тогдавсе ссылки будут напечатаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...