python爬虫1(豆瓣网)

1. 安装爬虫所需的开发包:

                    pip install requests  做网络请求(爬虫)
                    pip install bs4  数据解析(爬虫)

                    pip install lxml 内核解析

                    pip install html5lib
                    pip list (查看安装命令)

2.创建一个项目:

3.打开一个网站,查看并且提取出我们爬取时候所需要的信息:

      找到请求的   url、请求方式、身份信息

4. 在项目中创建一个.py结尾的python文件,并且编写代码:

def get_page():
    # 1. url
    url = "https://movie.douban.com/"
    # 2. 请求页面的时候应该发送什么数据
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"
    }# 伪装成浏览器的身份访问
    # 3. 请求方式:post/get
    # 4. 发送请求
    response = requests.get(url,headers)
    #print(response.text)
    text = response.text
    return text

这样我们就通过请求爬取到了一个网页的文本内容

5. 分析网页代码,根据标签提取所需要的内容:

通过上面的网页分析,我们只对需要的信息爬取:

import requests
from bs4 import  BeautifulSoup
import json

def get_page():
    # 1. url
    url = "https://movie.douban.com/"
    # 2. 请求页面的时候应该发送什么数据
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"
    }# 伪装成浏览器的身份访问
    # 3. 请求方式:post/get
    # 4. 发送请求
    response = requests.get(url,headers)
    #print(response.text)
    text = response.text
    return text

def pase_page(text):
    # pip install lxml 安装内核解析
    soup = BeautifulSoup(text,'lxml')
    # pip install lxml 内核解析
    # find_all 获取 li 标签中 data-release = 2018 的所有数据
    liList = soup.find_all("li",attrs={"data-release":"2018"})
    movies = [] # 创建列表容器
    for li in liList:
        # 获取li 标签中的属性
        title= li['data-title']
        release = li['data-release']
        region = li ['data-region']
        actors = li['data-actors']
        print("===========================================")
     #   print(title)
      #  print(release)
       # print(region)
      #  print(actors)
        # find 寻找li标签 中的img 标签
        img = li.find('img')
        # 获取img标签中的属性
        src = img['src']
        movie = {} # 创建字典,接受对象信息
        movie['title'] = title
        movie['release'] = release
        movie['region'] = region
        movie['actors'] = actors
        movie['src'] = src
        movies.append(movie)# 将对象放入容器中,暂时保存
    return movies

def save_data(data):
    # 打开json格式储存工具
    with open('douban.json','w',encoding='utf-8') as fp:
        # json.dump 将字典、列表dump成满足json格式的字符串
        json.dump(data,fp,ensure_ascii=False)

if __name__ == '__main__':
    text = get_page() # 获取爬取的内容
    movies = pase_page(text) # 对爬取的内容进行赛选
    save_data(movies) # 对数据进行json格式转换储存

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值