gpt4 book ai didi

javascript - 如何解析 anchor 标记中的文本?

转载 作者:行者123 更新时间:2023-11-28 04:15:17 25 4
gpt4 key购买 nike

我想解析这个“<a href="javascript:8==99999?popDuelloDialog(2754288):popTeam(2386)">Gnistan</a> ”并提取文本。

我尝试提取很多内容,但未能成功。

我不知道如何构建这种格式的方法“javascript comes”:(numbers) "不重复。所以我需要这样一种方法,仅使用重复部分并提取正文中的文本。

我的代码在这里:

import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebPage
import bs4 as bs
import urllib.request
import re
from bs4 import BeautifulSoup

class Client(QWebPage):

def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self.on_page_load)
self.mainFrame().load(QUrl(url))
self.app.exec_()

def on_page_load(self):
self.app.quit()

url = 'http://www.mackolik.com/Genis-Iddaa-Programi'
client_response = Client(url)
source = client_response.mainFrame().toHtml()
soup = bs.BeautifulSoup(source, 'html.parser')
#pattern=re.compile(r"javascript:;")
#js_test = soup.find_all('a', href='javascript')
hreff=soup.find_all("a","javascript:;")
#js_test=soup.select('a[href^="javascript:\('(.*?)'\);"]')
#print(js_test.text)
#type(href)
for i in hreff:
print(hreff[i])

最佳答案

IIUC 您所需要的只是使 BeautifulSoup 获取其 href 属性中具有 "javascript" 的所有 anchor 标记。然而,您想要解析的内容似乎是使用 JavaScript 创建的,这需要使用 selenium 和像 ChromeDriver 这样的网络驱动程序。使用BeautifulSoup和requests我们可以看到你可能想要的内容不在html代码中,解决你的问题的逻辑是这样的:

from bs4 import BeautifulSoup
import requests
url = "http://www.mackolik.com/Genis-Iddaa-Programi"
data = requests.get(url).text
soup = BeautifulSoup(data, 'html.parser')

for tag in soup.findAll('a'):
if "javascript" in tag['href']:
print(tag.text)

上面的代码检查子字符串 "javascript" 是否在 href 属性中 并打印标记的如果为真,则显示文本。

对于 selenium 和 ChromeDriver,逻辑几乎相同,但我们需要其他方法:

from selenium import webdriver

url = "http://www.mackolik.com/Genis-Iddaa-Programi"
driver = webdriver.Chrome()
driver.get(url)

for tag in driver.find_elements_by_tag_name("a"):
if "javascript" in tag.get_attribute("href"):
print(tag.text)

关于javascript - 如何解析 anchor 标记中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com