爬虫豆瓣电影250

爬虫第一天

一直都想去学爬虫,因为爬虫可以爬很多很多好玩的东西,比如好看的图片。但是之前总是三天打鱼两天晒网。现在特地来好好地系统学习一下。也算是巩固一下之前的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)