find vs select_one дает мне разные результаты в просмотре веб-страниц на python - PullRequest
1 голос
/ 19 октября 2019

привет, я новичок в Python Beautiful Soup. Я экспериментирую, чтобы очистить веб-сайт от https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2

. Когда я использую метод поиска, я могу получить информацию о цене продуктов. Однако я не могу получить информацию о цене при использовании метода select_one.

find
    import requests
    from bs4 import BeautifulSoup
    import pandas as pd
    r=requests.get('https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2')
    soup=BeautifulSoup(r.text,'lxml')
    results=soup.find_all('a', attrs={'class':'_31qSD5'})
    for result in results:
        price=result.find('div',{'class':'_1vC4OE _2rQ-NK'}).text[1:]

select_one

import requests
from bs4 import BeautifulSoup
import pandas as pd
r=requests.get('https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2')
soup=BeautifulSoup(r.text,'lxml')
results=soup.select('._31qSD5')
result=results[0]
price=result.select_one('._1vC4OE _2rQ-NK').text[1:]

Может ли кто-нибудь просветить меня, чтобы я получил информацию о цене в методе select_one?

1 Ответ

0 голосов
/ 19 октября 2019

Как насчет того, чтобы попытаться сделать следующее? Эта часть -NK класса _2rQ-NK кажется уникальной, поэтому вы можете использовать ее для получения цены.

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2')
soup = BeautifulSoup(r.text,'lxml')
for items in soup.select('._31qSD5'):
    price = items.select_one('[class$="-NK"]').text[1:]
    print(price)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...