find vs select \u one在python web抓取中给出了不同的结果

2024-06-23 20:00:11 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是Python靓汤的初学者。 我正在尝试从https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2中刮取一个网站

当我使用find方法时,我可以得到产品的价格信息。 但是,当我使用select\u 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:]

选择一个

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:]

有谁能教我用一种方法获取价格信息吗


Tags: texthttpsimportcomwwwresultfindrequests
1条回答
网友
1楼 · 发布于 2024-06-23 20:00:11

像下面这样试试怎么样?类_2rQ-NK的这部分-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)

相关问题 更多 >

    热门问题