這篇文章主要講解了“Linux環(huán)境下安裝chrome無(wú)頭模式抓取網(wǎng)頁(yè)源碼的方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Linux環(huán)境下安裝chrome無(wú)頭模式抓取網(wǎng)頁(yè)源碼的方法”吧!
成都創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、雨花臺(tái)網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、雨花臺(tái)網(wǎng)絡(luò)營(yíng)銷(xiāo)、雨花臺(tái)企業(yè)策劃、雨花臺(tái)品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供雨花臺(tái)建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.ekvhdxd.cn
由來(lái):公司業(yè)務(wù)方面需要抓取目標(biāo)網(wǎng)站首頁(yè)上的源代碼,進(jìn)行業(yè)務(wù)分析,在會(huì)議上腦子里就想使用Jsoup直接抓取就好了, 簡(jiǎn)單得很 , 等到會(huì)后 ,實(shí)際情況挺復(fù)雜的
有些網(wǎng)站是使用js生成的,有些網(wǎng)站還具備反爬功能, 判斷你是否使用瀏覽器訪問(wèn), 如果不是瀏覽器那么就直接給一個(gè)警告的js代碼, (由于行業(yè)原因, 不放出目標(biāo)網(wǎng)站和抓到的js代碼)
所以, 就只能依靠真的瀏覽器,真的去訪問(wèn)一下目標(biāo)網(wǎng)站,獲取頁(yè)面源碼, 此法借鑒于測(cè)試界的selenium和linux版的chrome無(wú)頭模式, 下面開(kāi)始:
0.參考資料來(lái)自簡(jiǎn)書(shū) :https://www.jianshu.com/p/b2609ed57f07 在這里感謝作者提供這么好的教程和思路
1.進(jìn)入linux 先執(zhí)行命令:
yum install libX11 libXcursor libXdamage libXext libXcomposite libXi libXrandr gtk3 libappindicator-gtk3 xdg-utils libXScrnSaver liberation-fonts
2.下載chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
3.安裝chrome
rpm -ivh google-chrome-stable_current_x86_64.rpm
這個(gè)時(shí)候,可能有的環(huán)境下就報(bào)錯(cuò), 類(lèi)似于
warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY error: Failed dependencies: /usr/bin/lsb_release is needed by google-chrome-stable-75.0.3770.100-1.x86_64
我找到的解決方式是這樣安裝chrome, 就可以安裝成功了
yum localinstall google-chrome-stable_current_x86_64.rpm
4. 查看一下安裝的chrome是什么版本的, 需要下載對(duì)應(yīng)的chromedriver
[root@a80f552643f3 ~]# google-chrome --version Google Chrome 75.0.3770.100
看到版本號(hào), 這樣就可以找對(duì)應(yīng)的chromedriver 去這里找: http://chromedriver.chromium.org/downloads
下載自己版本對(duì)應(yīng)的chromedriver , 然后傳到自己的linux上,位置隨意(不過(guò)這里在代碼中有體現(xiàn), 下面會(huì)提到)
chromedriver應(yīng)該是個(gè)zip, 需要解開(kāi), 里面有個(gè)chromedriver名字的文件, 設(shè)置一下權(quán)限(我這里給出了777的權(quán)限)
chmod 777 chromedriver
5.來(lái)到代碼編輯器里(idea, springboot,其他語(yǔ)言自行查找對(duì)應(yīng)的代碼設(shè)置)
設(shè)置一下pom.xml 在 <dependencies> 標(biāo)簽中增加入下內(nèi)容
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-api</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-support</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.1</version> </dependency>
寫(xiě)一個(gè)controller , 然后提供一個(gè)如下方法 , 注意看注釋, 注釋很重要
@GetMapping("info") public String info(@RequestParam String url){ // 這里就是設(shè)置chromedriver的地址 String driverPath = "/root/chromedriver"; // 將這個(gè)地址設(shè)置到系統(tǒng)變量參數(shù)中 System.setProperty("webdriver.chrome.driver", driverPath); // 如果沒(méi)有url參數(shù),就默認(rèn)取一個(gè)頁(yè)面的源碼 if (Objects.isNull(url)) { url = "https://www.jianshu.com/p/b2609ed57f07"; } // 開(kāi)始設(shè)置chrome ChromeOptions chromeOptions=new ChromeOptions(); // 必須設(shè)置 chrome 的無(wú)頭模式 , 否則linux命令行模式啟動(dòng)報(bào)錯(cuò) chromeOptions.setHeadless(Boolean.TRUE); // 必須設(shè)置不使用沙箱, 也是防止 DevToolsActivePort file doesn't exist chromeOptions.addArguments("--no-sandbox"); // 防止 DevToolsActivePort file doesn't exist chromeOptions.addArguments("--disable-dev-shm-usage"); // 不加載圖片, 提升速度 chromeOptions.addArguments("blink-settings=imagesEnabled=false"); // 設(shè)置 ua chromeOptions.addArguments("--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"); ChromeDriver chromeDriver = new ChromeDriver(chromeOptions); chromeDriver.get(url); // 獲得頁(yè)面源碼 String pageSource = chromeDriver.getPageSource(); return pageSource; }
打包上傳到Linux服務(wù)器, 可以作為外部調(diào)用的一個(gè)接口, 返回目標(biāo)地址的頁(yè)面源碼
感謝各位的閱讀,以上就是“Linux環(huán)境下安裝chrome無(wú)頭模式抓取網(wǎng)頁(yè)源碼的方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Linux環(huán)境下安裝chrome無(wú)頭模式抓取網(wǎng)頁(yè)源碼的方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站欄目:Linux環(huán)境下安裝chrome無(wú)頭模式抓取網(wǎng)頁(yè)源碼的方法
本文網(wǎng)址:http://www.ekvhdxd.cn/article6/gcohig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、關(guān)鍵詞優(yōu)化、微信小程序、建站公司、品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)