При парсинге с веб-страницы html отличается от того, когда я проверяю элемент? - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь очистить этот веб-сайт: https://www.footballindex.co.uk/top-200

В частности, я хочу очистить имя, цену покупки, цену продажи каждого игрока.

Это мой код, который я использовал для доступа к сети html:

import requests
from bs4 import BeautifulSoup

URL = "https://www.footballindex.co.uk/top-200"
page = requests.get(URL)
Soup = BeautifulSoup(page.text, "html.parser")
print(Soup)

Когда я распечатываю html, информация, которую я ищу, не попадает в соответствующую переменную, например в элементе проверки. Он представлен одной длинной строкой кода, как показано ниже. (Я отключил его, но он делает это для каждого игрока на странице).

 window.__PRELOADED_STATE__ = {"tradingReducer":{"adjustedPrice":0,"isLoading":false},"playersReducer":{"players":[{"id":"phil-foden","name":"Phil Foden","rank":14,"country":"England","nationalTeam":null,"sector":"Midfielder","nationality":"England","team":"Manchester City","optimized_image":"phil-foden-g-t4.jpg","buyPrice":5.93,"sellPrice":5.87,"penceChange":0.12,"changePercent":2.05},{"id":"bruno-fernandes","name":"Bruno Fernandes",

Я также пробовал использовать Selenium, но он просто предоставил мне данные в том же месте. Судя по другим сообщениям, которые я читал, и информации, которую я обнаружил, это похоже на то, что на веб-сайте используется Java, особенно для загрузки цен игроков. На странице они постоянно обновляются каждые несколько секунд.

Кажется, код в формате JSON. Но я был полностью озадачен тем, как я могу извлечь информацию в python, чтобы я мог фиксировать каждого игрока и их соответствующую цену покупки. Я пробовал использовать функции find и find_all, но каждый раз кажется, что они не извлекают никаких данных.

Кто-нибудь знает, какой код мне нужно использовать для правильного извлечения переменных, которые я хочу, из html ?

1 Ответ

0 голосов
/ 20 июня 2020

Мой способ обойти это - возможно, не лучший - это использовать селен, чтобы убедиться, что javascript загружает все данные, а затем передать это HTML в beautifulsoup для анализа и использования регулярного выражения для сопоставления необходимых данных. time.sleep используется, чтобы убедиться, что все данные в Java загружены. Вы можете поэкспериментировать с ним и уменьшить его по мере необходимости, чтобы ускорить ваш скрипт.


from selenium import webdriver
import time
from bs4 import BeautifulSoup 
import re

browser = webdriver.Firefox()
browser.set_window_size(700,900)

url = 'https://www.footballindex.co.uk/top-200'

browser.get(url)
time.sleep(4)

html = browser.execute_script('return document.documentElement.outerHTML')


all_html = BeautifulSoup(html,'lxml')
root = all_html.find('div', {'class':'List__container___1xBmN'})

all_buy_prices= re.findall('(buy" type="button">)(\£\d+\.\d+)(</button>)', str(root))

buy_price= all_buy_prices
print('Buy prices:')
print(str(buy_price))

browser.quit()

Это даст вам главный Div страницы со всеми данными. Теперь вы можете использовать REGEX, чтобы найти нужные данные.


<div class="List__container___1xBmN"><div class="List__containerBorder___nK1FG false"><div class="Header__header___1UCQ_ Header__top200___1a9En"><div>Name</div><div class=""><div class="Chevrons__container___1c4KD"><div class="Chevrons__title___yCmH6">Team</div><div class="Chevrons__chevrons___1ysGb"><div class="Chevrons__chevron___11hD7 false"></div><div class="Chevrons__chevron___11hD7 Chevrons__bottom___g1Tu6 false"></div></div></div></div><div class=""><div class="Chevrons__container___1c4KD"><div class="Chevrons__title___yCmH6 Chevrons__title__noCursor___W9MWN">Country</div></div></div><div class=""><div class="Chevrons__container___1c4KD Chevrons__centered___3WXrp"><div class="Chevrons__title___yCmH6">Position</div><div class="Chevrons__chevrons___1ysGb"><div class="Chevrons__chevron___11hD7 false"></div><div class="Chevrons__chevron___11hD7 Chevrons__bottom___g1Tu6 false"></div></div></div></div><div class=""><div class="Chevrons__container___1c4KD Chevrons__centered___3WXrp"><div class="Chevrons__title___yCmH6">24h</div><div class="Chevrons__chevrons___1ysGb"><div class="Chevrons__chevron___11hD7 Chevrons__active___2Pu9u"></div><div class="Chevrons__chevron___11hD7 Chevrons__bottom___g1Tu6 false"></div></div></div></div><div class=""><div class="Chevrons__container___1c4KD Chevrons__centered___3WXrp"><div class="Chevrons__title___yCmH6 Chevrons__title__noCursor___W9MWN">Watchlist</div></div></div><div class="bootstrap__dropdown___2TcPW Dropdown__dropdown___3P4JX"><button class="Dropdown__dropdown__button___9QeA8" type="button">Price inc. £<i class="bootstrap__glyphicon___17Rfb bootstrap__glyphicon-chevron-down___3xTUv"></i></button></div></div><div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">8</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Paul Pogba" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/paul-pogba-g-t9.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/paul-pogba">P.Pogba</a><a class="Row__team___3CPAz" href="/club/Manchester_United">Manchester United</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.19</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£7.92</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£8.06</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">11</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Mason Greenwood" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/mason-greenwood-g-t6.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/mason-greenwood">M.Greenwood</a><a class="Row__team___3CPAz" href="/club/Manchester_United">Manchester United</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.16</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£6.24</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£6.33</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">2</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Bruno Fernandes" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/bruno-fernandes-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/bruno-fernandes">B.Fernandes</a><a class="Row__team___3CPAz" href="/club/Manchester_United">Manchester United</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.09</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£10.13</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£10.35</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">132</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Rhian Brewster" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/rhian-brewster-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/rhian-brewster">R.Brewster</a><a class="Row__team___3CPAz" href="/club/Swansea_City">Swansea City</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.07</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.99</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.07</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">131</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Steven Bergwijn" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/steven-bergwijn-g-t3.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/steven-bergwijn">S.Bergwijn</a><a class="Row__team___3CPAz" href="/club/Tottenham_Hotspur">Tottenham Hotspur</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.06</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.96</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.08</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">100</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Marco Asensio" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/marco-asensio-g-t5.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/marco-asensio">M.Asensio</a><a class="Row__team___3CPAz" href="/club/Real_Madrid">Real Madrid</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.03</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£2.18</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.26</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">144</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Riccardo Orsolini" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/riccardo-orsolini-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/riccardo-orsolini">R.Orsolini</a><a class="Row__team___3CPAz" href="/club/Bologna">Bologna</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.03</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.83</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.00</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">181</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Leon Goretzka" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/leon-goretzka-g-t6.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/leon-goretzka">L.Goretzka</a><a class="Row__team___3CPAz" href="/club/FC_Bayern_München">FC Bayern München</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.03</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.64</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£1.73</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">17</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Ansu Fati" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/ansu-fati-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/ansu-fati">A.Fati</a><a class="Row__team___3CPAz" href="/club/Barcelona">Barcelona</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.02</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£4.66</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£4.88</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">25</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Alphonso Davies" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/alphonso-davies-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/alphonso-davies">A.Davies</a><a class="Row__team___3CPAz" href="/club/FC_Bayern_München">FC Bayern München</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.02</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£4.02</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£4.32</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">119</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Adil Aouchiche" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/adil-aouchiche-g-t1.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/adil-aouchiche">A.Aouchiche</a><a class="Row__team___3CPAz" href="/club/Paris_Saint-Germain">Paris Saint-Germain</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.02</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.92</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.13</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">129</div><div class="Pic__hexagonContainer___3tlAo"><div class="HexagonContainer__hexagon___3lz4M Pic__container__celebImage___LfP-u"><div class="HexagonContainer__innerHexagon___DbA3c"><div class="HexagonContainer__coreHexagon___3HXiI"><img alt="Brandon Williams" class="HexagonImage__imageContents___ZSIfo HexagonImage__image___2jE99" src="https://img.footballindex.co.uk/brandon-williams-g-t2.jpg"/></div></div></div></div><div class="Pic__container__name___26P8X"><a href="/player/brandon-williams">B.Williams</a><a class="Row__team___3CPAz" href="/club/Manchester_United">Manchester United</a></div></div><div class="Change__container___ZKCNS Change__container__positive___2mmVZ">£0.02</div><div class="BuyAndSellButtons__buttonContainer___3uLe5"><button class="Button__sell-background___Pu5NC Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG SellButton__price___3omkd tradingMedium SellButton__default___2LgzG" id="sell" type="button">£1.97</button><button class="Button__buy-background___3wyrT Button__button___3_Ozh Button__tradingMedium___TOIwW Button__yellow-glow___20bvG BuyButton__price___1Ylr9 tradingMedium" id="buy" type="button">£2.08</button></div></div><div class="sc-bwzfXH gXUZUa"><div class="Pic__container___3KX2N Pic__container__threeColumns___1Zbax"><div class="Pic__container__rank___3rCJC">5</div><div class="Pic__hexagonContainer___3tlAo"><div   </div>

Вот результат регулярного выражения - список со всеми ценами на покупку.

[('buy" type="button">', '£8.08', '</button>'), ('buy" type="button">', '£6.33', '</button>'), ('buy" type="button">', '£10.36', '</button>'), ('buy" type="button">', '£2.09', '</button>'), ('buy" type="button">', '£2.08', '</button>'), ('buy" type="button">', '£2.00', '</button>'), ('buy" type="button">', '£2.26', '</button>'), ('buy" type="button">', '£1.73', '</button>'), ('buy" type="button">', '£6.09', '</button>'), ('buy" type="button">', '£4.88', '</button>'), ('buy" type="button">', '£4.32', '</button>'), ('buy" type="button">', '£2.13', '</button>'), ('buy" type="button">', '£2.08', '</button>'), ('buy" type="button">', '£5.16', '</button>'), ('buy" type="button">', '£4.03', '</button>'), ('buy" type="button">', '£3.48', '</button>'), ('buy" type="button">', '£3.35', '</button>'), ('buy" type="button">', '£3.31', '</button>'), ('buy" type="button">', '£3.18', '</button>'), ('buy" type="button">', '£3.14', '</button>'), ('buy" type="button">', '£2.95', '</button>'), ('buy" type="button">', '£2.90', '</button>'), ('buy" type="button">', '£2.85', '</button>'), ('buy" type="button">', '£2.81', '</button>'), ('buy" type="button">', '£2.79', '</button>'), ('buy" type="button">', '£2.79', '</button>'), ('buy" type="button">', '£2.75', '</button>'), ('buy" type="button">', '£2.63', '</button>'), ('buy" type="button">', '£2.62', '</button>'), ('buy" type="button">', '£2.56', '</button>'), ('buy" type="button">', '£2.55', '</button>'), ('buy" type="button">', '£2.53', '</button>'), ('buy" type="button">', '£2.50', '</button>'), ('buy" type="button">', '£2.47', '</button>'), ('buy" type="button">', '£2.43', '</button>'), ('buy" type="button">', '£2.38', '</button>'), ('buy" type="button">', '£2.37', '</button>'), ('buy" type="button">', '£2.36', '</button>'), ('buy" type="button">', '£2.30', '</button>'), ('buy" type="button">', '£2.28', '</button>'), ('buy" type="button">', '£2.25', '</button>'), ('buy" type="button">', '£2.21', '</button>'), ('buy" type="button">', '£2.20', '</button>'), ('buy" type="button">', '£2.19', '</button>'), ('buy" type="button">', '£2.17', '</button>'), ('buy" type="button">', '£2.09', '</button>'), ('buy" type="button">', '£2.08', '</button>'), ('buy" type="button">', '£2.04', '</button>'), ('buy" type="button">', '£2.02', '</button>'), ('buy" type="button">', '£2.02', '</button>'), ('buy" type="button">', '£2.01', '</button>'), ('buy" type="button">', '£1.90', '</button>'), ('buy" type="button">', '£1.86', '</button>'), ('buy" type="button">', '£1.85', '</button>'), ('buy" type="button">', '£1.84', '</button>'), ('buy" type="button">', '£1.81', '</button>'), ('buy" type="button">', '£1.80', '</button>'), ('buy" type="button">', '£1.80', '</button>'), ('buy" type="button">', '£1.79', '</button>'), ('buy" type="button">', '£1.77', '</button>'), ('buy" type="button">', '£1.75', '</button>'), ('buy" type="button">', '£1.74', '</button>'), ('buy" type="button">', '£1.73', '</button>'), ('buy" type="button">', '£1.70', '</button>'), ('buy" type="button">', '£1.69', '</button>'), ('buy" type="button">', '£1.69', '</button>'), ('buy" type="button">', '£1.68', '</button>'), ('buy" type="button">', '£1.66', '</button>'), ('buy" type="button">', '£1.64', '</button>'), ('buy" type="button">', '£1.64', '</button>'), ('buy" type="button">', '£1.64', '</button>'), ('buy" type="button">', '£1.63', '</button>'), ('buy" type="button">', '£6.05', '</button>'), ('buy" type="button">', '£4.40', '</button>'), ('buy" type="button">', '£4.01', '</button>'), ('buy" type="button">', '£3.67', '</button>'), ('buy" type="button">', '£3.49', '</button>'), ('buy" type="button">', '£2.96', '</button>'), ('buy" type="button">', '£2.69', '</button>'), ('buy" type="button">', '£2.58', '</button>'), ('buy" type="button">', '£2.39', '</button>'), ('buy" type="button">', '£2.31', '</button>'), ('buy" type="button">', '£2.26', '</button>'), ('buy" type="button">', '£2.20', '</button>'), ('buy" type="button">', '£2.19', '</button>'), ('buy" type="button">', '£2.11', '</button>'), ('buy" type="button">', '£2.09', '</button>'), ('buy" type="button">', '£2.08', '</button>'), ('buy" type="button">', '£2.05', '</button>'), ('buy" type="button">', '£2.01', '</button>'), ('buy" type="button">', '£1.99', '</button>'), ('buy" type="button">', '£1.99', '</button>'), ('buy" type="button">', '£1.95', '</button>'), ('buy" type="button">', '£1.89', '</button>'), ('buy" type="button">', '£1.89', '</button>'), ('buy" type="button">', '£1.85', '</button>'), ('buy" type="button">', '£1.83', '</button>'), ('buy" type="button">', '£1.82', '</button>'), ('buy" type="button">', '£1.69', '</button>'), ('buy" type="button">', '£1.68', '</button>')]

Я рекомендую https://pythex.org/, где вы можете протестировать свое регулярное выражение без необходимости каждый раз запускать скрипт.

...