美文网首页
爬虫豆瓣电影250

爬虫豆瓣电影250

作者: 不玩手机的蛇佬腔 | 来源:发表于2018-11-06 15:48 被阅读0次

    爬虫第一天

    一直都想去学爬虫,因为爬虫可以爬很多很多好玩的东西,比如好看的图片。但是之前总是三天打鱼两天晒网。现在特地来好好地系统学习一下。也算是巩固一下之前的python。不至于荒废了。我可不想只当一个前端程序员。
    现在手头上有一个网易云课堂的21天学分布式爬虫的教学视频。之前在京东还买了一本电子书,叫《Python 网络爬虫从入门到实践》,现在开始看起来。然后还有本网上下载的电子书关于Scrapy爬虫的,后面再看吧。
    今天(应该是包括昨天晚上)主要是看了书的前三章。练习了爬豆瓣电影TOP250的电影名。我的Python3运行环境是用anaconda3(64bit)的Jupyter notebook,我的浏览器是Chrome。代码如下:

    import requests
    from bs4 import BeautifulSoup
    def get_movies():
        headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36', #设置请求头,这个头可以从Chrome 按F12查看network,再一次刷新页面的第一个文件左键单击就可以从右边的Header下面的Requeste Header看到,可以直接复制
        'Host': 'movie.douban.com' #设置主机名
        }
        movie_list = []
        for i in range(0,10): # 这里需要对每一个页面的地址进行分析才能想到的循环操作
            link = 'https://movie.douban.com/top250?start=' + str(i * 25)
            r = requests.get(link, headers=headers, timeout= 10)
            print (str(i+1),"页响应状态码:", r.status_code) #打印响应码
            
            soup = BeautifulSoup(r.text, "lxml") # 这一部分不是很清楚
            div_list = soup.find_all('div', class_='hd')
            for each in div_list:
                movie = each.a.span.text.strip()
                movie_list.append(movie)
        return movie_list       
    print (get_movies())
    
    with open('豆瓣电影TOP250.txt', "w") as f: # 对内容进行保存
        for a in get_movies():
            f.write(a+'\n')
        f.close() # 
    

    看了教学视频主要内容如下:

    • 爬虫基本流程
    • http(s)协议
    • url 详解
    • 常用请求方法
    • 请求头常见参数
    • 常见响应状态码

    接下来是Python3标准库urllib库中的常见函数:

    • request.urlopen 返回网页响应内容
    • request.urlretrieve 下载文件
    • parser.urlencode 对中文等内容进行编码
    • parser.parse_qs 对上面的进行解码
    • parser.urlparse/parser.urlsplit 分割url结构

    以上就是昨夜今晨的学习内容。

    相关文章

      网友评论

          本文标题:爬虫豆瓣电影250

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