美文网首页
PHP与Python抓取页面有那么大差别?

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

作者: 封不然 | 来源:发表于2019-01-23 10:57 被阅读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的情况,但是实话实说,你为了这一点代码,强行增假了项目维护难度以及学习成本,这值?这是极客思维?我有个问题想要问你,“我俏丽吗?”

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

    相关文章

      网友评论

          本文标题:PHP与Python抓取页面有那么大差别?

          本文链接:https://www.haomeiwen.com/subject/brhjjqtx.html