A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我们先不讲Python基础,我们直接来看一段网络爬虫代码,看一下Python语言的特点。那么什么是网络爬虫呢?网络爬虫,又称为网络蜘蛛(WebSpider),非常形象的一个名字。如果你把整个互联网想象成类似于蜘蛛网一样的构造,那么这只爬虫,就是要在上面爬来爬去,以便捕获我们需要的资源。

     下面我们来看代码,这段代码的主要功能是编写一个爬虫,爬取百度百科“孙悟空”的词条,并将所有包含“view”关键字的链接按照格式打印出来,并进入每一个词条,然后检测该词条是否有副标题,如果有就将副标题一并打印出来:

import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup

def main():
    keyword = input("请输入关键词:")
    keyword = urllib.parse.urlencode({"word":keyword})
    response = urllib.request.urlopen("http://baike.baidu.com/search/word?%s" % keyword)
    html = response.read()
    soup = BeautifulSoup(html, "html.parser")

    for each in soup.find_all(href = re.compile("view")):
        content = ''.join([each.text])
        url2 = ''.join(["http://baike.baidu.com", each["href"]])
        response2 = urllib.request.urlopen(url2)
        html2 = response2.read()
        soup2 = BeautifulSoup(html2, "html.parser")
        if soup2.h2:
            content = ''.join([content, soup2.h2.text])
        content = ''.join([content, " -> ", url2])
        print(content)

if __name__ == "__main__":
    main()
我们可以在IDLE下使用F5快捷键执行程序,看一下效果:


ImportError: No module named request,说明我们没有安装request这个模块

可以在cmd下执行 pip intall requests 命令安装requests模块


安装成功后,有如下打印:


如果没有安装pip,还需要进入命令行,然后把目录切换到python的安装目录下的Script文件夹下,运行 easy_inatall pip


其实这样并不能解决问题,还是会出现问题


这是Python27的问题,我们重新安装下Python34,在Python34下执行,就不会出现这个问题了。


好了,看一下效果吧,博主昨晚刚看完《黑豹》,大场面太少,黑妹子太跳戏。。5.5分。。开玩笑,看一下输入“黑豹”的效果:


我们看下在网页中的效果:可以看到(美国漫威漫画旗下超级英雄)这个子标题


还有个小问题,黑豹电影在爬虫中居然没有爬到。。这是什么原因。

还有个问题,爬虫结果正常,但最后出现了如下错误,暂未分下,大家可以看一下




2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马