js注入+chrome插件爬蟲

 本例以http://www.biqugexsw.com/30_30505/爲例php

 頁面以下html

  

(1)什麼是js注入java

   首先觀察控制檯例子的控制檯,發現全部的連接在.linsmain下python

   

   在console.log下輸入web

Var s=$(".listmain a");ajax

for(var i=0;i<s.length;i++){console.log($(s[i]).attr("href"))}正則表達式

便能得到全部連接chrome

這就是簡單的js注入
json

  1. python爬蟲

  Python簡單便捷爲爬蟲首選語言瀏覽器

  爬取(1)中的內容並用正則表達式處理

開始爬取單章內容,以http://www.biqugexsw.com/30_30505/13935714.html

爲例

在觀察

http://www.biqugexsw.com/30_30505/13935714.html

的控制檯

對比以後發現由於這個網站作過反爬蟲處理,具體的小說文字被隱藏,關於如何作反反爬蟲處理有不少方法,如下只說其中的js注入反反爬蟲處理

  1. 反反爬蟲

在這以前須要理清一下思路

第一如今須要的是控制檯底下的這些源碼利用console.log注入js能夠獲取

第二將獲取的文字存儲到本地,js很難實現這樣的功能,那麼須要一種能夠存儲文件的語言,php,python,java均可以,本例以java爲例子

第三js如何和java通訊,以把得到到的文字發個java,java進行存儲

本例以ajax爲例

第一已經實現,第二須要創建一個web項目

將js得到文字ajax發給java

var vals=$("#content").text();

var names=$(".content h1").text();

$.ajax({

type:"POST",

url:"http://localhost:8080/jjs/index",

data:{"va":vals,"names":names},

success:function(es){}

});

再在java裏得到

如何將字符存儲爲txt自行百度

  1. 批量注入

通過(3)已經能夠單張小說爬下來,可是一個小說有不少章,不可能打開一個頁面console注入一下,因此要批量注入,批量注入須要解決的問題

第一須要打開不一樣的頁面獲取不一樣的內容而後發個java存儲

第二打開的頁面較多,會致使瀏覽器卡死

解決第一個問題須要引入一個工具,瀏覽器插件(chrome)

在chrome瀏覽器輸入

chrome://extensions/

會進入插件頁面,本例以360極速瀏覽器爲例

瀏覽器插件開發請轉

http://open.chrome.360.cn/extension_dev/devtools.html

新建一個目錄以下

manifest.json:

Content_script屬性爲注入配置

Matches爲訪問哪些連接時注入

Js爲注入的文件,注入了jq和ch.js

Ch.js這裏寫打開頁面所作的操做

發送本界面的文字,並在兩秒後關閉

  1. html 主程序入口,批量打開連接

須要導入批量打開的連接fileList.txt

fileList.txt中內容爲單章的連接,利用定時器2s打開一個頁面

fileList.txt可用python生成

插件開發完畢以後,在瀏覽器安裝本插件

選擇加載已解壓的擴展程序,選擇插件文件,就將插件安裝成功了

打開1.html,加載fileList.txt,點擊開始

每2s彈出一個窗口此時會發送ajax請求

Java會將存儲爲文件

相關文章
相關標籤/搜索