當前位置:首頁 » 網頁前端 » 用於爬取電子書的js腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用於爬取電子書的js腳本

發布時間: 2022-05-31 19:45:26

① 爬蟲怎麼爬取js動態生成的數據

我用Jsoup寫爬蟲,一般遇到html返回沒有的內容。但是瀏覽器顯示有的內容。都是分析頁面的http請求日誌。分析頁面JS代碼來解決。
1、有些頁面元素被隱藏起來了->換selector解決
2、有些數據保存在js/json對象中->截取對應的串,分析解決
3、通過api介面調用->偽造請求獲得數據
還有一個終極方法
4、使用phantomjs或者casperjs這種headless瀏覽器

② 怎樣使用scrapy爬取js動態生成的數據

解決方案:
利用第三方中間件來提供JS渲染服務: scrapy-splash 等。
利用webkit或者基於webkit庫
Splash是一個Javascript渲染服務。它是一個實現了HTTP API的輕量級瀏覽器,Splash是用Python實現的,同時使用Twisted和QT。Twisted(QT)用來讓服務具有非同步處理能力,以發揮webkit的並發能力。
下面就來講一下如何使用scrapy-splash:
利用pip安裝scrapy-splash庫:
$ pip install scrapy-splash
scrapy-splash使用的是Splash HTTP API, 所以需要一個splash instance,一般採用docker運行splash,所以需要安裝docker。
安裝docker, 安裝好後運行docker。
拉取鏡像(pull the image):
$ docker pull scrapinghub/splash
用docker運行scrapinghub/splash:
$ docker run -p 8050:8050 scrapinghub/splash
配置splash服務(以下操作全部在settings.py):
1)添加splash伺服器地址:
SPLASH_URL = 'http //localhost:8050'
2)將splash middleware添加到DOWNLOADER_MIDDLEWARE中:
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
3)Enable SplashDeplicateArgsMiddleware:
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeplicateArgsMiddleware': 100,
}
4)Set a custom DUPEFILTER_CLASS:
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
5)a custom cache storage backend:
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
例子
獲取HTML內容:
import scrapy
from scrapy_splash import SplashRequest
class MySpider(scrapy.Spider):
start_urls = ["http //example com", "http //example com/foo"]
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url, self.parse, args={'wait': 0.5})
def parse(self, response):
# response.body is a result of render.html call; it
# contains HTML processed by a browser.
# ...

③ 怎麼把網頁上的js腳本拿下來自己用

不明白你意思,一般瀏覽網頁後會在C:\Documents and Settings\administrator33\Local Settings\Temporary Internet Files文件夾裡面留下大量的上網記錄這裡面就什麼文件都有,有圖片,音樂,視頻,txt純文本,vbs腳本文件和js腳本文件你自己找吧

④ 如何爬取JS動態生成的數據

String url = try { WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10); //設置webClient的相關參數 webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setCssEnabled(false); webClient.setAjaxController(new ()); //webClient.getOptions().setTimeout(50000); webClient.getOptions().(false); //模擬瀏覽器打開一個目標網址 HtmlPage rootPage = webClient.getPage(url); System.out.println("為了獲取js執行的數據 線程開始沉睡等待"); Thread.sleep(3000);//主要是這個線程的等待 因為js載入也是需要時間的 System.out.println("線程結束沉睡"); String html = rootPage.asText(); System.out.println(html);} catch (Exception e) {}

⑤ 如何用Python爬蟲抓取JS動態篩選內容

打開瀏覽器,以google chrome為例,輸入你上面的網址。
然後按F12打開調試窗口,然後嘗試勾選左邊某一個選項,馬上可以看到右邊的調試窗口有東西輸出。
找到第一個輸出的行,點擊header,可以看到每一個都是用的post方法。
所以只需要構造相應的header並post上去,就可以得到你想要的數據了。

而這個發放返回的是json數據,然後編碼成dict格式 提取出數據就可以了。

⑥ 如何用python爬取js動態生成內容的頁面

抓取js動態生成的內容的頁面有兩種基本的解決方案

1用dryscrape庫動態抓取頁面
js腳本是通過瀏覽器來執行並返回信息的,所以,抓取js執行後的頁面,一個最直接的方式就是用python模擬瀏覽器的行為。WebKit 是一個開源的瀏覽器引擎,python提供了許多庫可以調用這個引擎,dryscrape便是其中之一,它調用webkit引擎來處理包含js等的網頁!

2 selenium web測試框架

selenium是一個web測試框架,它允許調用本地的瀏覽器引擎發送網頁請求,所以,它同樣可以實現抓取頁面的要求。

⑦ 如何用JS獲取外部腳本的文件內容

您需要的功能可以利用AJAX來實現。下面是我寫的代碼讀取一個文件並顯示出來,供您參考。

<!doctypehtml>
<html>
<head>
<metacharset="utf-8">
<title>使用AJAX讀取外部文件</title>
</head>
<body>
<divid="txt">外部文件內容</div>
<script>
if(window.ActiveXObject)//windows系統
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
elseif(window.XMLHttpRequest)//其它系統,及非IE6系統
xmlHttp=newXMLHttpRequest();

xmlHttp.onreadystatechange=Callback;
xmlHttp.open("GET","mytxt.txt",true);//讀取mytxt.txt內容
xmlHttp.send(null);

functionCallback()
{
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
xml=xmlHttp.responseText;//讀取返回值即文件內容
document.getElementById("txt").innerText=xml;//在當前頁面顯示文件內容
}
}
}
</script>
</body>
</html>

⑧ 如何爬取網頁中js動態生成的數據

Stringurl="http://xinjinqiao.tprtc.com/admin/main/flrpro.do";
try{
WebClientwebClient=newWebClient(BrowserVersion.FIREFOX_10);
//設置webClient的相關參數
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.setAjaxController(());
//webClient.getOptions().setTimeout(50000);
webClient.getOptions().(false);
//模擬瀏覽器打開一個目標網址
HtmlPagerootPage=webClient.getPage(url);
System.out.println("為了獲取js執行的數據線程開始沉睡等待");
Thread.sleep(3000);//主要是這個線程的等待因為js載入也是需要時間的
System.out.println("線程結束沉睡");
Stringhtml=rootPage.asText();
System.out.println(html);
}catch(Exceptione){
}

⑨ 用js腳本怎麼讀取excel表格指定列的內容,然後寫入到txt裡面

樓主解決了嗎 我沒有查到方法

⑩ 爬蟲怎麼爬取js後面載入的數據

推薦個很好用的軟體,我也是一直在用的,就是前嗅的ForeSpider軟體,
他有自己編寫的腳本語言,網上通過js生成的內容都可以寫幾行腳本就可以採集數據了!!!!
我是一直用過很多的採集軟體,最後選擇的前嗅的軟體,ForeSpider這款軟體是可視化的操作。簡單配置幾步就可以採集。如果網站比較復雜,這個軟體自帶爬蟲腳本語言,通過寫幾行腳本,就可以採集所有的公開數據。
軟體還自帶免費的資料庫,數據採集直接存入資料庫,也可以導出成excel文件。
如果自己不想配置,前嗅可以配置採集模板,我的模板就是從前嗅購買的。
另外他們公司不光是軟體好用,還有自己的數據分析系統,直接採集完數據後入庫,ForeSpider內部集成了數據挖掘的功能,可以快速進行聚類分類、統計分析等,採集結果入庫後就可以形成分析報表。
最主要的是他採集速度非常快,我之前用八爪魚的軟體,開伺服器采,用了一個月采了100萬條,後來我用ForeSpider。筆記本採的,一天就好幾百萬條。
這些都是我一直用前嗅的經驗心得,你不妨試試。
建議你可以下載一個免費版試一試,免費版不限制功能,沒有到期時間。