gpt4 book ai didi

javascript - 如何将任意网页的原始 html 下载到 Javascript 字符串中?

转载 作者:行者123 更新时间:2023-11-30 06:25:33 25 4
gpt4 key购买 nike

我一直在使用 perl 程序下载和抓取 Yahoo 股票页面,并将所需信息转换为 json 文件,我将其读入 html/javascript 文件以进行进一步处理和显示。

我想避免 perl 步骤,直接将原始 html 下载到我的 javascript 中。

我知道 XMLHttpRequest 只会从加载 html 文件的服务器下载,而不是从任意网页下载。

如何将任意网页的原始 html 下载到 javascript 字符串中?

如果可能的话,我更愿意使用普通的 javascript(好吧,jQuery 就可以)。

最佳答案

不能那样做,简短的回答。 除非所有页面都位于同一域中,否则它们不会跨域。

JavaScript 有其局限性,如 same-origin policy . 这就是为什么您不能使用 JavaScript 跨域!您可能认为这是出于安全原因。

你能做什么!

  • XmlHttpRequests (XHR`s) 如果 scheme://domain:port 组合对于托管应获取 HTML 的 JavaScript 的页面相同。

    <
  • 我碰巧知道 firefox 扩展不受跨域限制,但仅此而已。

好的,我已经做了一些环顾四周,你可以做的就是这个!就是用

YQL or Yahoo Query Language.

The YQL Web Service enables applications to query, filter, and combine data from different sources across the Internet. YQL statements have a SQL-like syntax, familiar to any developer with database experience. The following YQL statement, for example, retrieves geo data for Sunnyvale, CA:

select * from geo.places where text="sunnyvale, ca"

To access the YQL Web Service, a Web application can call HTTP GET, passing the YQL statement as a URL parameter, for example:

那么让我们说我们在哪里抓取 craiglist.com

http://query.yahooapis.com/v1/public/yql?q=select * from html where url="http://craigslist.com"

你可以在这里看到我的查询CraglistQuery

这将为您提供一个 json,它看起来像这样,因为它很大,所以我切掉了其中的一些部分!

       {
"href": "#ASIA",
"content": "Asia/Pacific/Middle East"
},
{
"href": "#OCEANIA",
"content": "Oceania"
},
{
"href": "#LATAM",
"content": "Latin America"
},
{
"href": "#AF",
"content": "Africa"
}
]
},
{
"id": "map",
"style": "border: 1px solid #551A8B; background-color: #71A4CD;"
},
{
"class": "colmask",
"div": [
{
"class": "box box_1",
"h4": [
"Alabama",
"Alaska",
"Arizona",
"Arkansas",
"California",
"Colorado",
"Connecticut",
"Delaware",
"District of Columbia",
"Florida",
"Georgia",
"Hawaii",
"Idaho"
],
"ul": [
{
"li": [
{
"a": {
"href": "http://auburn.craigslist.org",
"content": "auburn"
}
},

如果您随后想要获取该页面的特定部分,您可以使用 WHERE 语句,在这种情况下,您将使用 xpath。

然后它看起来像这样。

select * from html where url="http://craigslist.com"  and xpath ="/div/div"

只会为您提供页面的那一部分。这是一个结果

{
"query": {
"count": 0,
"created": "2014-01-27T10:25:00Z",
"lang": "en-US",
"diagnostics": {
"publiclyCallable": "true",
"redirect": [
{
"from": "http://craigslist.com/",
"status": "302",
"content": "http://craigslist.org/"
},
{
"from": "http://craigslist.org/",
"status": "302",
"content": "http://www.craigslist.org/"
},
{
"from": "http://www.craigslist.org/",
"status": "302",
"content": "http://geo.craigslist.org/"
},
{
"from": "http://geo.craigslist.org/",
"status": "302",
"content": "http://www.craigslist.org/about/sites"
}
],
"url": [
{
"execution-start-time": "0",
"execution-stop-time": "1401",
"execution-time": "1401",
"content": "http://craigslist.com"
},
{
"execution-start-time": "0",
"execution-stop-time": "1401",
"execution-time": "1401",
"content": "http://craigslist.com"
}
],
"user-time": "1406",
"service-time": "2783",
"build-version": "0.2.2157"
},
"results": null
}
}

关于javascript - 如何将任意网页的原始 html 下载到 Javascript 字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369690/

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