![](/img/trans.png)
[英]How to remove characters in pandas data frame when web scraping with Python?
[英]How to act when not receiving the data when scraping with python?
该站点有库存数据,我正在尝试从该站点中提取一些数据。 https://quickfs.net/company/AAPL:US
其中 AAPL 是股票名称,可以更改。
该页面看起来像一个大表:列是年份,行是计算值,例如:资产回报率和毛利率
为此,我尝试遵循一些教程:
Web 用 Python 刮擦 — A 到 Z A 部分 — 处理 BeautifulSoup 并避免阻塞
导入软件包后,我一开始就卡住了:
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
此 function 从 web 页面检索数据:
def make_soup(url):
thepage=uReq(url)
soupdata=soup(thepage, "html.parser")
return(soupdata)
然后
soup=make_soup("https://quickfs.net/company/AAPL:US")
现在,当试图查看汤里面的数据时
soup.text
output 只是这个而不是网页上的所有数据:
'\n\n\n\n\n\n\n\n\n\n\n\nExport Fundamental Data U.S. and International Stocks - QuickFS.net\n\n\n\n\n\n \r\n Loading QuickFS...\r\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n'
我认为这是特定 web 页面的问题,但我不知道如何处理。
输入不同的 url function make_soup(url) 有时会起作用。
恳请您的帮助
那是因为该页面是完全动态的,这意味着 javascript 正在完成所有工作,而 BeautifulSoup4 不运行 JS。
你必须在这里选择:
在 B 的情况下,您会看到该站点正在进行此调用:
curl 'https://api.quickfs.net/stocks/AAPL:US/ovr/Annual/' \
-XGET \
-H 'Accept: application/json, text/plain, */*' \
-H 'Content-Type: application/json' \
-H 'Origin: https://quickfs.net' \
-H 'Accept-Language: en-us' \
-H 'Host: api.quickfs.net' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15' \
-H 'Referer: https://quickfs.net/company/AAPL:US' \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'Connection: keep-alive' \
-H 'X-Auth-Token: ' \
-H 'X-Referral-Code: '
你可以做的是:
import requests
response = request.get("https://api.quickfs.net/stocks/AAPL:US/ovr/Annual/")
data = response.json()
其中 data 将是网站用来呈现信息的原始数据:
{
"datasets": {
"metadata": {
"_id": {},
"qfs_symbol": "NAS:AAPL",
"currency": "USD",
"fsCat": "normal",
"name": "Apple Inc.",
"gs3_version_at_metadata_update": 20191106,
"exchange": "NASDAQ",
"industry": "Technology Hardware & Equipment",
"symbol": "AAPL",
"country": "US",
"price": 278.58,
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.