Python 从HTML中获取特定字符串以进行web抓取
我正在尝试获取在网站上超链接的股票名称。对于再现性:Python 从HTML中获取特定字符串以进行web抓取,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我正在尝试获取在网站上超链接的股票名称。对于再现性: import requests from bs4 import BeautifulSoup URL = 'https://seekingalpha.com/news/3592559-nvax-nbl-among-premarket-gainers' page = requests.get(URL) soup = BeautifulSoup(page.content, 'html.parser') results = soup.find(id
import requests
from bs4 import BeautifulSoup
URL = 'https://seekingalpha.com/news/3592559-nvax-nbl-among-premarket-gainers'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(id='bullets_ul')
stock_elems = results.find_all('span', class_='ticker-hover-wrapper')
我想把名单上的名字划上下划线
我尝试了以下代码的一些变体,但没有成功:
for stock_elem in stock_elems:
stock_name = stock_elem.find('href', class_='*')
print(symbol_name.text.strip())
任何帮助都将不胜感激。试试以下方法:
import requests
from bs4 import BeautifulSoup
URL = 'https://seekingalpha.com/news/3592559-nvax-nbl-among-premarket-gainers'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(id='bullets_ul')
stock_elems = results.find_all('span', class_='ticker-hover-wrapper')
ls=[i.find('a').text for i in stock_elems]
输出:
ls
['DPW',
'IMRN',
'BTAI',
'SONN',
'VOLT',
'IBIO',
'AIKI',
'DGLY',
'IDRA',
'HTBX',
'JOB',
'NAK',
'VBIV',
'NBL',
'OGEN',
'ANVS',
'XBIO',
'BNTX',
'CKPT',
'FIXX',
'FLDM',
'PDSB',
'CFRX',
'MVIS',
'NVAX']
试试这个:
import requests
from bs4 import BeautifulSoup
URL = 'https://seekingalpha.com/news/3592559-nvax-nbl-among-premarket-gainers'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(id='bullets_ul')
stock_elems = results.find_all('span', class_='ticker-hover-wrapper')
ls=[i.find('a').text for i in stock_elems]
输出:
ls
['DPW',
'IMRN',
'BTAI',
'SONN',
'VOLT',
'IBIO',
'AIKI',
'DGLY',
'IDRA',
'HTBX',
'JOB',
'NAK',
'VBIV',
'NBL',
'OGEN',
'ANVS',
'XBIO',
'BNTX',
'CKPT',
'FIXX',
'FLDM',
'PDSB',
'CFRX',
'MVIS',
'NVAX']
尝试使用find_all()
列表中所有可导航字符串的get_text()
方法:
strings = [x.get_text() for x in stock_elems]
此生成器表达式将返回(print()
)一个包含所有文本的列表:
['(NYSEMKT:DPW)', '(NASDAQ:IMRN)', '(NASDAQ:BTAI)', '(NASDAQ:SONN)', '(NYSEMKT:VOLT)', '(NYSEMKT:IBIO)', '(NASDAQ:AIKI)', '(NASDAQ:DGLY)', '(NASDAQ:IDRA)', '(NASDAQ:HTBX)', '(NYSEMKT:JOB)', '(NYSEMKT:NAK)', '(NASDAQ:VBIV)', '(NASDAQ:NBL)', '(NYSEMKT:OGEN)', '(NYSEMKT:ANVS)', '(NASDAQ:XBIO)', '(NASDAQ:BNTX)', '(NASDAQ:CKPT)', '(NASDAQ:FIXX)', '(NASDAQ:FLDM)', '(NASDAQ:PDSB)', '(NASDAQ:CFRX)', '(NASDAQ:MVIS)', '(NASDAQ:NVAX)']
您可以使用另一个生成器表达式仅获取您想要的文本:
spec_strings = [y.split(":")[1][:-1] for y in strings]
在这里,您将获得拆分的第二个元素“:“并对其进行切片以获得文本,而不包含最终文本”)”。所以,有了这个
stock_elems = results.find_all('span', class_='ticker-hover-wrapper')
strings = [x.get_text() for x in stock_elems]
spec_strings = [y.split(":")[1][:-1] for y in strings]
print(spec_strings)
你可以得到这个:
['DPW', 'IMRN', 'BTAI', 'SONN', 'VOLT', 'IBIO', 'AIKI', 'DGLY', 'IDRA', 'HTBX', 'JOB', 'NAK', 'VBIV', 'NBL', 'OGEN', 'ANVS', 'XBIO', 'BNTX', 'CKPT', 'FIXX', 'FLDM', 'PDSB', 'CFRX', 'MVIS', 'NVAX']
我希望已帮助您尝试使用get_text()
方法查找find_all()
列表中的所有可导航字符串:
strings = [x.get_text() for x in stock_elems]
此生成器表达式将返回(print()
)一个包含所有文本的列表:
['(NYSEMKT:DPW)', '(NASDAQ:IMRN)', '(NASDAQ:BTAI)', '(NASDAQ:SONN)', '(NYSEMKT:VOLT)', '(NYSEMKT:IBIO)', '(NASDAQ:AIKI)', '(NASDAQ:DGLY)', '(NASDAQ:IDRA)', '(NASDAQ:HTBX)', '(NYSEMKT:JOB)', '(NYSEMKT:NAK)', '(NASDAQ:VBIV)', '(NASDAQ:NBL)', '(NYSEMKT:OGEN)', '(NYSEMKT:ANVS)', '(NASDAQ:XBIO)', '(NASDAQ:BNTX)', '(NASDAQ:CKPT)', '(NASDAQ:FIXX)', '(NASDAQ:FLDM)', '(NASDAQ:PDSB)', '(NASDAQ:CFRX)', '(NASDAQ:MVIS)', '(NASDAQ:NVAX)']
您可以使用另一个生成器表达式仅获取您想要的文本:
spec_strings = [y.split(":")[1][:-1] for y in strings]
在这里,您将获得拆分的第二个元素“:“并对其进行切片以获得文本,而不包含最终文本”)”。所以,有了这个
stock_elems = results.find_all('span', class_='ticker-hover-wrapper')
strings = [x.get_text() for x in stock_elems]
spec_strings = [y.split(":")[1][:-1] for y in strings]
print(spec_strings)
你可以得到这个:
['DPW', 'IMRN', 'BTAI', 'SONN', 'VOLT', 'IBIO', 'AIKI', 'DGLY', 'IDRA', 'HTBX', 'JOB', 'NAK', 'VBIV', 'NBL', 'OGEN', 'ANVS', 'XBIO', 'BNTX', 'CKPT', 'FIXX', 'FLDM', 'PDSB', 'CFRX', 'MVIS', 'NVAX']
我希望能帮助您元素名称是
a
,而不是href
。然后它说“symbol\u name”没有定义。你能详细说明一下吗@选择这是因为您没有名为symbol\u name
的变量。您的意思一定是stock\u name
。元素名称是a
,而不是href
。然后它说没有定义“symbol\u name”。你能详细说明一下吗@选择这是因为您没有名为symbol\u name
的变量。您的意思一定是股票名称
。也很有用。我可以使用证券交易所收集数据(纳斯达克或纽约证券交易所)。谢谢,非常有用。我可以使用证券交易所收集数据(纳斯达克或纽约证券交易所)。谢谢