Как я могу использовать beautiful soup, чтобы удалить символ с этой веб-страницы?

#python #beautifulsoup #request

#python #beautifulsoup #запрос

Вопрос:

Я пытаюсь получить все символы для S amp; P 500 с этой веб-страницы.

введите описание изображения здесь

Я получаю ответ none на каждый запрос, потому что я новичок в bs4, поэтому я надеюсь, что вы сможете помочь!

В:

 import bs4 as bs
import requests
import sys
url = "https://www.slickcharts.com/sp500"

page = requests.get(url)


soup = bs.BeautifulSoup(page.text, 'html.parser')

symbol = soup.find_all('a')
print(symbol)
  

Out:

 [<a href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a>]

  

Комментарии:

1. Все ли ссылки отображаются таким образом? Я думаю, что Cloudflare, возможно, блокирует ваши запросы, поскольку видит его как бота. Быстрый трюк — добавить useragent, и это может обойти блокировку.

Ответ №1:

Чтобы получить правильный ответ от сервера, укажите User-Agent HTTP заголовок:

 import requests 
from bs4 import BeautifulSoup


url = 'https://www.slickcharts.com/sp500'

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'}
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')

for i, a in enumerate(soup.select('table td:nth-child(3) a'), 1):
    print(i, a.text)
  

С принтами:

 ...

496 FLS
497 DISCA
498 NOV
499 MRO
500 HFC
501 FTI
502 UAA
503 UA
504 NWS
505 ETFC
  

Ответ №2:

Чтобы получить все данные, вам нужно добавить User-Agent header , иначе страница подумает, что вы бот, и заблокирует запрос:

 from bs4 import BeautifulSoup
import requests

url = "https://www.slickcharts.com/sp500"

HEADERS = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
}
page = requests.get(url, headers=HEADERS)


soup = BeautifulSoup(page.text, "html.parser")

symbol = soup.select("td:nth-of-type(3) a")
for tag in symbol:
    print(tag.text)
  

Вывод

 AAPL
MSFT
AMZN
FB
GOOGL
GOOG
BRK.B
JNJ
PG
V
NVDA
HD
MA
UNH
JPM
VZ
ADBE
PYPL
NFLX
CRM
DIS
INTC
CMCSA
MRK
T
PFE
WMT
ABT
PEP
KO
BAC
TMO
MCD
CSCO
NKE
COST
ABBV
AMGN
AVGO
XOM
ACN
NEE
MDT
DHR
UNP
QCOM
CVX
BMY
TXN
LOW
LIN
UPS
HON
PM
LLY
ORCL
IBM
AMT
SBUX
AMD
WFC
NOW
CHTR
LMT
MMM
C
RTX
BA
FIS
SPGI
INTU
CAT
ISRG
BLK
MDLZ
TGT
GILD
ZTS
PLD
CVS
MO
ANTM
DE
CCI
BKNG
EQIX
SYK
VRTX
MS
GS
TJX
BDX
AXP
DUK
D
CL
TMUS
APD
REGN
CI
FDX
ATVI
ADP
SO
CME
CSX
MMC
ICE
ITW
SHW
BSX
FISV
PGR
GE
TFC
HUM
AMAT
NSC
SCHW
CB
DG
GPN
MU
USB
KMB
NEM
ADSK
EL
EW
ECL
LRCX
PNC
NOC
AON
MCO
ILMN
BIIB
WM
AEP
ADI
ETN
ROP
DD
DLR
BAX
EMR
GM
CTSH
GIS
LHX
EA
XEL
TWTR
COP
DXCM
SBAC
CNC
DOW
EXC
COF
PSA
SRE
CMG
ROST
HCA
EBAY
ORLY
IDXX
TEL
GD
APH
SNPS
SYY
CMI
A
JCI
KLAC
WEC
IQV
STZ
TROW
TT
PCAR
ES
CDNS
MET
PPG
VRSK
MSCI
INFO
ALL
CTAS
ZBH
MNST
BK
TRV
YUM
PEG
BLL
ANSS
AZO
F
AWK
PH
MCHP
SWK
WLTW
MSI
KR
ROK
FTV
HPQ
ED
ADM
BBY
TDG
WBA
APTV
CLX
OTIS
FAST
CARR
PRU
PAYX
MAR
XLNX
GLW
SWKS
ALXN
AIG
DHI
AFL
HLT
KMI
RMD
WELL
MCK
VFC
MTD
MKC
FCX
WMB
AME
PSX
ALGN
LEN
LUV
CTVA
CPRT
AVB
SLB
CHD
WY
DTE
CERN
PPL
O
STT
HSY
DLTR
WST
EOG
SPG
ETR
VRSN
DAL
AJG
KHC
FLT
EIX
FRC
RSG
AEE
ARE
AMP
DFS
LYB
EFX
EQR
MPC
LH
MKTX
VMC
KEYS
MXIM
TTWO
CDW
ODFL
CAG
VLO
AKAM
HOLX
AMCR
CMS
TSN
KSU
INCY
NTRS
PAYC
TSCO
COO
CTXS
GWW
DPZ
ETSY
VTR
IP
K
CBRE
FITB
DOV
FE
KMX
FTNT
VIAC
TFX
VAR
BR
MLM
EXPD
QRVO
XYL
DGX
SYF
PEAK
LVS
MAS
STE
PXD
NVR
CTLT
EXR
ZBRA
DRE
NDAQ
NUE
PKI
URI
TYL
ABC
GPC
HIG
MAA
CHRW
ESS
GRMN
BF.B
CAH
HRL
IR
FMC
IEX
DRI
TER
ULTA
SJM
SIVB
CE
LNT
PHM
NLOK
HPE
IFF
J
KEY
TIF
MTB
EXPE
CINF
FBHS
JKHY
WAT
OKE
AES
BXP
RF
ABMD
WHR
EVRG
LDOS
WAB
CFG
RCL
TDY
BIO
ATO
OMC
ANET
IT
CNP
EMN
STX
JBHT
PFG
AAP
HES
WDC
AVY
HAS
UAL
HAL
PKG
UDR
LW
ALB
FOXA
HBAN
XRAY
CPB
LUMN
NTAP
CBOE
ALLE
RJF
WRK
WU
PNW
CXO
HSIC
MGM
OXY
L
WRB
UHS
BKR
BWA
TXT
SNA
LKQ
GL
RE
HST
NI
PWR
ROL
IRM
PNR
CCL
MYL
LYV
AOS
NRG
AIZ
FFIV
LB
JNPR
COG
WYNN
HWM
DISH
CF
IPG
MOS
NWL
RHI
AAL
TAP
DVA
MHK
SEE
REG
DISCK
LNC
PRGO
IPGP
CMA
HII
HBI
VNO
LEG
BEN
FRT
AIV
NWSA
ZION
NLSN
FANG
KIM
FLIR
PBCT
DXC
PVH
TPR
ALK
FOX
IVZ
NCLH
NBL
GPS
DVN
UNM
APA
XRX
SLG
RL
FLS
DISCA
NOV
MRO
HFC
FTI
UAA
UA
NWS
ETFC
  

Комментарии:

1. Подождите, можете ли вы кратко объяснить часть заголовков? Я не видел этого ни в одном учебнике BS!

2. Спасибо! и еще одна вещь, если хотите. где вы нашли nth-of-type(3) a ?

3. @anony123454323 Они называются селекторами CSS, вы можете узнать о них больше здесь