当前位置: 首页 > 知识库问答 >
问题:

python3.x - 爬虫:如何获得vn30指数构成公司的symbol?

江凯风
2024-02-15

"https://cn.investing.com/indices/hnx-30-components",这个网页包含了hnx30公司的构成,我只要爬取下来,用一个字典来容纳结果,键是公司名,值是一个链接,点击这个链接,可以跳转到公司名的网页,这个公司名对应的symbol就在里面。

root = 'https://cn.investing.com/'from playwright.sync_api import sync_playwright as playwrightpw = playwright().start()browser = pw.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()url="https://cn.investing.com/indices/hnx-30-components"page.goto(url, wait_until="domcontentloaded")import lxml.htmldoc = lxml.html.fromstring(page.content())elements = doc.xpath('//table[@id="cr1"]//tr//a')company ={}for e in elements:    key = e.text_content()    value = root + e.attrib['href']    company[key] = value

下面我要做的是,获得每个公司的symbol,发现,居然无法用playwright,来模拟跳转,并获取跳转后的网页,请各位指导一下。

共有1个答案

滕祯
2024-02-15

首先,我注意到你正在尝试使用playwright来模拟点击并获取跳转后的网页内容。然而,playwright主要用于自动化网页交互,而不是用于网页爬虫。

对于你的需求,你可以考虑使用更专业的爬虫库,例如requestsBeautifulSoup,来获取你需要的公司symbol。下面是一个简单的示例:

import requestsfrom bs4 import BeautifulSouproot = 'https://cn.investing.com/'url = "https://cn.investing.com/indices/hnx-30-components"response = requests.get(url)soup = BeautifulSoup(response.text, 'lxml')company_dict = {}table = soup.find('table', id='cr1')for row in table.find_all('tr'):    if row.find('a'):  # 确保行中有链接        a_tag = row.find('a')        company_name = a_tag.text.strip()        href = a_tag.get('href')        company_dict[company_name] = root + href# 打印结果for company, href in company_dict.items():    print(f"{company}: {href}")

在这个例子中,我们首先发送一个GET请求到给定的URL。然后,我们使用BeautifulSoup来解析HTML内容,并找到包含公司名称和链接的表格。对于每个找到的链接,我们将其添加到字典中,键是公司名称,值是链接。最后,我们打印出字典的内容。

请注意,如果你想进一步获取跳转后的网页内容以获取symbol,你可能需要使用更复杂的逻辑来模拟浏览器行为,例如使用JavaScript来触发点击事件等。但上述代码应该能够为你提供一个基本的起点。

 类似资料:
  • 本文向大家介绍零基础写python爬虫之爬虫的定义及URL构成,包括了零基础写python爬虫之爬虫的定义及URL构成的使用技巧和注意事项,需要的朋友参考一下 一、网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字。 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。 网络蜘蛛是通过网页的链接地址来寻找网页的。 从网站某一个页面(通常是首页)开始,读取网页的内容

  • 我要把downstream_port传到tiktok_response_interceptor.py脚本, 我目前的方法是 tiktok_response_interceptor-9092.py tiktok_response_interceptor-9093.py tiktok_response_interceptor-9094.py 然后文件中也写死 这大概不是最好的方法

  • 原始content: decode('utf-8')报错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 1: invalid continuation byte decode('utf-8', 'ignore'): decode('gbk', 'ignore'): decode('utf-16', 'ig

  • 本文向大家介绍Python3.x爬虫下载网页图片的实例讲解,包括了Python3.x爬虫下载网页图片的实例讲解的使用技巧和注意事项,需要的朋友参考一下 一、选取网址进行爬虫 本次我们选取pixabay图片网站 二、选择图片右键选择查看元素来寻找图片链接的规则 通过查看多个图片路径我们发现取src路径都含有 https://cdn.pixabay.com/photo/ 公共部分且图片格式都为.jpg

  • 进入2004年后,KDE与GNOME依然保持快速发展,KDE阵营分别在2月份和8月份推出3.2、3.3版本,GNOME则在3月和9月推出2.6和 2.8,两者的版本升级步幅旗鼓相当。到3.3版本的KDE已经非常成熟,它拥有包括KOffice、Konqueror浏览器、Kmail套件、KDE 即时消息在内的一大堆应用软件,且多数都达到可用标准,功能上完全不亚于Windows 2000。而GNOME更

  • 本文向大家介绍一则python3的简单爬虫代码,包括了一则python3的简单爬虫代码的使用技巧和注意事项,需要的朋友参考一下 不得不说python的上手非常简单。在网上找了一下,大都是python2的帖子,于是随手写了个python3的。代码非常简单就不解释了,直接贴代码。 关于cookie、异常等处理看了一下,没有花时间去处理,毕竟只是想通过写爬虫来学习python。