豆瓣爬虫概况总结
目的
爬取豆瓣top250电影的详细信息:
- 电影名称
- 电影外文名称
- 电影详情
- 电影评分
- 电影评价数目
- 导演/主演
- 概述(其中的一句话描述)
工具
python3.6.6
urllib库(python内置的http请求库)
re库(正则表达式,进行网页信息的筛选)
bs4库(BeautifulSoup,将获取的网页内容转化成document树,方便遍历取数据)
xlwt库(操作Excel表格,爬取数据进行持久化存储)
sqllit3库(sqllit数据库,对数据持久化存储的第二种方式)
import re
import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
import xlwt
import sqlite3
项目整体设计
- 抓取网页
- 网页数据解析
- 存储数据
爬取网页
#抓取网页
def getData(baseurl):
#创建一个request Header,伪装成浏览器
header = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
}
req = urllib.request.Request(baseurl,headers=header)
#爬取当前网页内容
response = urllib.request.urlopen(req)
#返回抓取的网页内容
return response.read().decode("utf-8")
==注:==因为豆瓣有防爬处理,所以需要伪装成浏览器进行访问,所以加上了head然后进行访问,并获取到baseurl地址对应的网页内容。
网页数据解析
数据的解析大致分为两步
- 定义正则模式对象
- 根据正则进行数据的匹配
以下是具体实现代码:
存储数据
Excel式存储数据
关键:了解xlwt库的操作,然后设计好存储位置即可实现对应操作
代码如下:
sql式存储数据
本项目使用sqllite进行存储,目的为了熟悉sqllit(注:sqllite和mysql还是有些不同,希望读者注意区分)
关键:也是需要熟悉sqllite库的使用,如果不熟悉的话,可以看看对应库的博客,或者教学视频,内容不多,很快能够掌握。
这里分为两步:
- 初始化数据库,在这里主要就是体现为建表(哭笑)
- 对数据进行插入
详细代码如下: