PHP与Python抓取页面有那么大差别?

2019-01-23  本文已影响48人  封不然

“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的情况,但是实话实说,你为了这一点代码,强行增假了项目维护难度以及学习成本,这值?这是极客思维?我有个问题想要问你,“我俏丽吗?”

无意喷语言的孰优孰劣,只想吐槽下,面对现实情景吧,语言的无脑粉。

上一篇下一篇

猜你喜欢

热点阅读