Beautifulsoup найти элемент - PullRequest
0 голосов
/ 25 апреля 2020

привет, я пытался найти элемент, который я нашел первый (soup1_title), но у меня были проблемы с поиском следующего! мне просто нужен автор книги, например, для первого, который я выложил в пользу: «Дж. Г. Баллард и Мартин Эмис» (без учета) вот вопрос: вот область, в которой я нуждаюсь

и вот код, который я написал:

import requests
from bs4 import BeautifulSoup
#Search_Text = input('Please Enter Search Query ')
#Search_Text = Search_Text.replace(' ','+')
url = 'https://www.amazon.com/s?k=j+g+ballard+short+stories'
#print(url)
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'lxml')
soup1_title = soup.select('.a-color-base.a-text-normal')
soup2_title = soup.select('.a-size-base'+'a-link-normal')


for j in soup2_title:
    print(j.string)

ссылка: https://www.amazon.com/s?k=j+g+ballard+short+stories

Ребята, не могли бы вы помочь мне, чтобы найти Вышеупомянутый элемент, используя Красивый суп?

1 Ответ

1 голос
/ 25 апреля 2020
import requests
from bs4 import BeautifulSoup

params = {
    "k": "j g ballard short stories"
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
}


def main(url):
    r = requests.get(url, params=params, headers=headers)
    soup = BeautifulSoup(r.content, 'lxml')
    target = soup.select("div[class$=a-color-secondary]")
    for tar in target:
        if "by" in tar.text:
            print(tar.get_text(strip=True, separator=" "))


main("https://www.amazon.com/s")

Выход:

by J. G. Ballard and Martin Amis
by J. G. Ballard | Feb 1, 2010
by J. G. Ballard and Anthony Burgess
by J. G. Ballard , Ric Jerrrom , et al.
by J. G. Ballard | Sep 1, 2006
by J. G. Ballard and China Miéville
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
by J. G. Ballard
...