如何使用BeautifulSoup快速免费提取文本

2024-07-07 09:20:12 发布

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

我想在下面的强标记之间提取文本:

<div class="u-flL sh-col">
<span id="shSummary">
<div class=" vi-fnf-ship  fnfvar0">
<img alt="Estimated by eBay FAST 'N FREE " src="https://ir.ebaystatic.com/rs/v/xmyxg1ubry1npie2zlpan5za3yu.png" class="vi-fnf-ship-img">
<span class="vi-fnf-ship-txt "><strong class="sh_gr_bld">FAST 'N FREE</strong></span>

我在以下几点上采取了不成功的方法,但没有运气:

    # shippingCost = soup.find('strong', {'class':"sh_gr_bld"}).text.strip()
    #shippingCost = soup.find('div', {'class': ' vi-fnf-ship  fnfvar0'}).find('span', {'class': 'vi-fnf-ship-txt'})\
    #   .find('strong', {'class': 'sh_gr_bld'}).text
    # shippingCost = soup.find_all('strong[class="sh_gr_bld"]').text
    # shippingCost = soup.find('span', {'class': 'vi-fnf-ship-txt'}).text#.find('b', {'class': 'sh_gr_bld'}).text
    # shippingCost = soup.find('div')
    # shippingCost = soup.find_all('span', {'class': 'vi-fnf-ship-txt'}).text#.find('span').next_sibling
    # shippingCost = soup.select('.vi-fnf-ship-txt'):nth-of-type(1).text
    shippingCost = soup.select('img.vi-fnf-ship-img span.vi-fnf-ship-txt strong.sh_gr_bld').text

谢谢

==更新

我只是把汤弄得漂亮一点,但没用:

soup = BeautifulSoup(response.text, 'html.parser')
print(soup.prettify())

==新更新

我将prettify输出重定向到一个file.txt文件,并查看了代码。因此,它肯定在那里与上面相同的标签

项目的URL为:

https://www.ebay.com/itm/Mens-Legacy-Air-Bubble-90-Running-Trainers-Shoes/323806767262?_trkparms=ispr%3D1&hash=item4b6463289e:m:m_fYF4CZiE5Q9q08V38EY5w&enc=AQAEAAACQBPxNw%2BVj6nta7CKEs3N0qWNuu8y9VA2HEw0wmPsL5MTRFTJmnuraG452Pk3WQNpsgmrIf6ePIv561MkEiJV0pbFv9zmD1JW8JOdsIntwNXTFqw1McvYYqbaOR4YjsvuadL81czU45zEDv4c6pnAr%2FxMKDDYWViq81G9CPiJps3CAXKI8YcKTdUooXwBzpWHe0mCqp9WtgKcdyEUl85CxBxnYT7lC9lE%2BuZeNSfmbUfYMdiOxpjW8bZGX39SM8wagpyNHh79ILbJzX49%2BBpK0I11nzUm8xxnTPF53XqIKksC20%2BA0LHzrHYhV%2FwiuVk0Pb6t%2BUbTHPnUPbe%2B2OX4Pq8o8WvpergM0K2HXjzK2YOkP0M69O%2FjtCEpv22Gd0tP5MMLmsk4fuNxzQIADa2P199CYxynr76eLUr2u63alCb3heTTvPncuJzk02EGEdi38Nm%2BPcq2PTwjY1S%2F4mZ1ZolPl4lPxmfVr4gXrCaXfMExPYokV4FOmo46FJovcncwt4oHFjpSDCufOrbH4xcqrjfTRQ%2BigsxPaH5hWpzILfWTPNXbcIcaJRceFBFZrg8Ysa3oFuHEBgaBZKHRnZmWuFqPB%2B68WmqbZ1tunmg%2BXBKzGqLLfqnBWWw3qDXYr0V2AbALr73VLCeWzQIJzm0E0D%2FdB0KTn2YTHZzfD%2FrXYEUz2i19CwLG7SA8S9no0IFA16%2BpqE4G3s%2FE%2BAKFz3aQJZVpxSTc7Imy0CTF%2FjsA92yilzyIlsIeTc2AjaKy%2BTM%2Fjg%3D%3D&checksum=323806767262b0325dcc5d12405d9773312793615829&enc=AQAEAAACQBPxNw%2BVj6nta7CKEs3N0qWNuu8y9VA2HEw0wmPsL5MTRFTJmnuraG452Pk3WQNpsgmrIf6ePIv561MkEiJV0pbFv9zmD1JW8JOdsIntwNXTFqw1McvYYqbaOR4YjsvuadL81czU45zEDv4c6pnAr%2FxMKDDYWViq81G9CPiJps3CAXKI8YcKTdUooXwBzpWHe0mCqp9WtgKcdyEUl85CxBxnYT7lC9lE%2BuZeNSfmbUfYMdiOxpjW8bZGX39SM8wagpyNHh79ILbJzX49%2BBpK0I11nzUm8xxnTPF53XqIKksC20%2BA0LHzrHYhV%2FwiuVk0Pb6t%2BUbTHPnUPbe%2B2OX4Pq8o8WvpergM0K2HXjzK2YOkP0M69O%2FjtCEpv22Gd0tP5MMLmsk4fuNxzQIADa2P199CYxynr76eLUr2u63alCb3heTTvPncuJzk02EGEdi38Nm%2BPcq2PTwjY1S%2F4mZ1ZolPl4lPxmfVr4gXrCaXfMExPYokV4FOmo46FJovcncwt4oHFjpSDCufOrbH4xcqrjfTRQ%2BigsxPaH5hWpzILfWTPNXbcIcaJRceFBFZrg8Ysa3oFuHEBgaBZKHRnZmWuFqPB%2B68WmqbZ1tunmg%2BXBKzGqLLfqnBWWw3qDXYr0V2AbALr73VLCeWzQIJzm0E0D%2FdB0KTn2YTHZzfD%2FrXYEUz2i19CwLG7SA8S9no0IFA16%2BpqE4G3s%2FE%2BAKFz3aQJZVpxSTc7Imy0CTF%2FjsA92yilzyIlsIeTc2AjaKy%2BTM%2Fjg%3D%3D&checksum=323806767262b0325dcc5d12405d9773312793615829

配送部分的免费快速文本


Tags: textdivtxtshfindclassstrongspan
1条回答
网友
1楼 · 发布于 2024-07-07 09:20:12

“诀窍”是在获得主页之前设置英国的运输偏好:

import requests
from bs4 import BeautifulSoup

url = 'https://www.ebay.com/itm/Mens-Legacy-Air-Bubble-90-Running-Trainers-Shoes/323806767262?_trkparms=ispr%3D1&hash=item4b6463289e:m:m_fYF4CZiE5Q9q08V38EY5w&enc=AQAEAAACQBPxNw%2BVj6nta7CKEs3N0qWNuu8y9VA2HEw0wmPsL5MTRFTJmnuraG452Pk3WQNpsgmrIf6ePIv561MkEiJV0pbFv9zmD1JW8JOdsIntwNXTFqw1McvYYqbaOR4YjsvuadL81czU45zEDv4c6pnAr%2FxMKDDYWViq81G9CPiJps3CAXKI8YcKTdUooXwBzpWHe0mCqp9WtgKcdyEUl85CxBxnYT7lC9lE%2BuZeNSfmbUfYMdiOxpjW8bZGX39SM8wagpyNHh79ILbJzX49%2BBpK0I11nzUm8xxnTPF53XqIKksC20%2BA0LHzrHYhV%2FwiuVk0Pb6t%2BUbTHPnUPbe%2B2OX4Pq8o8WvpergM0K2HXjzK2YOkP0M69O%2FjtCEpv22Gd0tP5MMLmsk4fuNxzQIADa2P199CYxynr76eLUr2u63alCb3heTTvPncuJzk02EGEdi38Nm%2BPcq2PTwjY1S%2F4mZ1ZolPl4lPxmfVr4gXrCaXfMExPYokV4FOmo46FJovcncwt4oHFjpSDCufOrbH4xcqrjfTRQ%2BigsxPaH5hWpzILfWTPNXbcIcaJRceFBFZrg8Ysa3oFuHEBgaBZKHRnZmWuFqPB%2B68WmqbZ1tunmg%2BXBKzGqLLfqnBWWw3qDXYr0V2AbALr73VLCeWzQIJzm0E0D%2FdB0KTn2YTHZzfD%2FrXYEUz2i19CwLG7SA8S9no0IFA16%2BpqE4G3s%2FE%2BAKFz3aQJZVpxSTc7Imy0CTF%2FjsA92yilzyIlsIeTc2AjaKy%2BTM%2Fjg%3D%3D&checksum=323806767262b0325dcc5d12405d9773312793615829&enc=AQAEAAACQBPxNw%2BVj6nta7CKEs3N0qWNuu8y9VA2HEw0wmPsL5MTRFTJmnuraG452Pk3WQNpsgmrIf6ePIv561MkEiJV0pbFv9zmD1JW8JOdsIntwNXTFqw1McvYYqbaOR4YjsvuadL81czU45zEDv4c6pnAr%2FxMKDDYWViq81G9CPiJps3CAXKI8YcKTdUooXwBzpWHe0mCqp9WtgKcdyEUl85CxBxnYT7lC9lE%2BuZeNSfmbUfYMdiOxpjW8bZGX39SM8wagpyNHh79ILbJzX49%2BBpK0I11nzUm8xxnTPF53XqIKksC20%2BA0LHzrHYhV%2FwiuVk0Pb6t%2BUbTHPnUPbe%2B2OX4Pq8o8WvpergM0K2HXjzK2YOkP0M69O%2FjtCEpv22Gd0tP5MMLmsk4fuNxzQIADa2P199CYxynr76eLUr2u63alCb3heTTvPncuJzk02EGEdi38Nm%2BPcq2PTwjY1S%2F4mZ1ZolPl4lPxmfVr4gXrCaXfMExPYokV4FOmo46FJovcncwt4oHFjpSDCufOrbH4xcqrjfTRQ%2BigsxPaH5hWpzILfWTPNXbcIcaJRceFBFZrg8Ysa3oFuHEBgaBZKHRnZmWuFqPB%2B68WmqbZ1tunmg%2BXBKzGqLLfqnBWWw3qDXYr0V2AbALr73VLCeWzQIJzm0E0D%2FdB0KTn2YTHZzfD%2FrXYEUz2i19CwLG7SA8S9no0IFA16%2BpqE4G3s%2FE%2BAKFz3aQJZVpxSTc7Imy0CTF%2FjsA92yilzyIlsIeTc2AjaKy%2BTM%2Fjg%3D%3D&checksum=323806767262b0325dcc5d12405d9773312793615829'
set_ship_to_url = 'https://www.ebay.com/gh/setuserpreference'

with requests.session() as s:
    r = s.post(set_ship_to_url, json={"userPreferedCountry":"GBR"}) # <  set Ship To preference to United Kingdom
    soup = BeautifulSoup(s.get(url).content, 'html.parser')

print(soup.select_one('strong.sh_gr_bld').text)

印刷品:

FAST 'N FREE

相关问题 更多 >