PHP與Python抓取頁面有那麼大差別?

“php是世界上最好的語言”
“人生苦短,我用python”

現在到處都能搜索到各種語言對噴的,啥靜態語言噴腳本語言,還出了各種鄙視鏈,其實我個人是覺得真心是沒必要,只要是在合適的時候使用合適的語言不就完了,我也在寫php,也在寫java和python,只是不同的場景下使用適合的形式解決問題就好了。

我實在是不理解,我用php寫了個抓取頁面服務以後,有人過來勸我說python會實現更好不用正則,吧啦吧啦吧啦的,但是這個功能就是寫在一個小的單模塊應用程序裏,本來就是幫朋友做的小的站,你這個裏面有python有php,後面交給別人的時候這······,本着這樣的考慮,何必把問題上升到“技術棧是否完善”,“你到底懂不懂”這之類的,強行擡槓!?真不太懂。

我寫了個簡單的抓取網頁然後匹配內容的,直接用python和php兩種實現同樣的功能,需要說明的是其實php也能用XPath

# php 版本 demo
<?php

$url = 'http://www.court.gov.cn/fabu-gengduo-16';
$result = [];
$doc = new \DOMDocument();

foreach (range(1, 1) as $page) {
    $html = file_get_contents($url . '?page=' . $page);
    @$doc->loadHTML($html);
    $doc->normalize();
    $xpath = new \DOMXpath($doc);
    $elements = $xpath->query('//*[@id="container"]/div/ul/li');
    for($i = 0; $i < $elements->length; $i++) {
        $result[] = [
            'title' => $elements->item($i)->getElementsByTagName('a')->item(0)->getAttribute('title'),
            'href' => $elements->item($i)->getElementsByTagName('a')->item(0)->getAttribute('href'),
            'date' => $elements->item($i)->getElementsByTagName('i')->item(0)->nodeValue,
        ];
    }
}

var_dump($result);

# python 版本 demo

import urllib3
from lxml import etree

url = 'http://www.court.gov.cn/fabu-gengduo-16'
http = urllib3.PoolManager()
result = []

for page in range(1, 2, 1):
    r = http.request('GET', url, fields={
        'page': page
    })
    html = etree.HTML(r.data.decode())
    html_data = html.xpath('//*[@id="container"]/div/ul/li')
    for elements in html_data:
        result.append({
            'date': elements.xpath('.//i/text()')[0],
            'title': elements.xpath('.//a/@title')[0],
            'href': elements.xpath('.//a/@href')[0],
        })

print(result)

emmm,可能php看起來多了點代碼,這還是在沒有用curl的情況,但是實話實說,你爲了這一點代碼,強行增假了項目維護難度以及學習成本,這值?這是極客思維?我有個問題想要問你,“我俏麗嗎?”

無意噴語言的孰優孰劣,只想吐槽下,面對現實情景吧,語言的無腦粉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章