- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 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 扩展不受跨域限制,但仅此而已。
好的,我已经做了一些环顾四周,你可以做的就是这个!就是用
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/
我是一名优秀的程序员,十分优秀!