gpt4 book ai didi

jquery - 无法在 jquery 对象上抓取 href

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:46 24 4
gpt4 key购买 nike

我可以抓取 jquery 对象吗?我实际上想从 jquery 对象获取所有 href 链接。我怎样才能做到这一点?不到一周前,我刚刚通过 YouTube 和互联网学习了 Python 网络抓取。

url_1='http://ws.bursamalaysia.com/market/listed-companies/company-announcements/announcements_listing_f.html?_=1449326650932&callback=jQuery16208050466175191104_1449326525662&page_category=company&category=FA&sub_category=all&all_gm=&alphabetical=All&board=&sector=&date_from=&date_to=&company=5218&page=&testing='

#Standard url request
req = urllib.request.Request(url_1, headers=headers)
resp = urllib.request.urlopen(req)
respData = resp.read()

soup = BeautifulSoup(respData, 'html.parser')
#soup.prettify()

pattern=re.compile("href")
links = soup.find_all(text=pattern)
print(links)

我仍然无法获取所有链接。它返回来自 \n 的许多 \\\n。为什么会出现这种情况?我应该将它们转换为字符串吗?

我尝试使用

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

但它返回[]。为什么会这样?

我可以在普通网页中获取href链接,但不能在jquery对象上获取。

最佳答案

我没有调试你的代码,但是从你提供的url的响应中,我可以看到html内容是一个值,在对象的键值对中。因此,为了制作一碗好汤,您需要首先提取该 html。使用requests你可以像下面这样做。

import re
import json

from bs4 import BeautifulSoup
import requests


url='http://ws.bursamalaysia.com/market/listed-companies/company-announcements/announcements_listing_f.html?_=1449326650932&callback=jQuery16208050466175191104_1449326525662&page_category=company&category=FA&sub_category=all&all_gm=&alphabetical=All&board=&sector=&date_from=&date_to=&company=5218&page=&testing='
pat = re.compile(r'\(\s*(\{[\s,\w,\W]*\})\s*\)')

r = requests.get(url)
js_obj = json.loads(pat.search(r.text).group(1))

soup = BeautifulSoup(js_obj.get('html'), 'lxml')

links = map(lambda a: a.get('href'), soup.find_all('a'))

for link in links:
print(link)

这将产生如下输出:

/market/listed-companies/list-of-companies/plc-profile.html?stock_code=5218
/market/listed-companies/company-announcements/4867445
/market/listed-companies/list-of-companies/plc-profile.html?stock_code=5218
/market/listed-companies/company-announcements/4772849
....

关于jquery - 无法在 jquery 对象上抓取 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115757/

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