本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担
起因
最近在生产实习,要求自己找一个网站爬一下存储数据到excel表格中
我看电影也是按豆瓣TOP250来筛选的,手动翻页太麻烦,于是爬一下
[2019-09-02更新]后面要做作业答辩,改为存储到mysql数据库中
代码实现
和网上大部分爬取的文章不同,我想要的是每部电影的剧情简介信息
所以需要先获取每部电影的链接,再单独爬取每部电影
全部代码如下:# -*- coding: utf-8 -*-
'''
@author: soapffz
@fucntion: 豆瓣TOP250电影信息爬取并存储到mysql数据库(多线程)
@time: 2019-09-01
'''
import requests
from fake_useragent import UserAgent
from lxml import etree
from tqdm import tqdm
import threading
import pymysql
from re import split
"""
提示库找不到可复制以下语句解决
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fake_useragent
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tqdm
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple threading
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
"""
class Top250(object):
def __init__(self):
ua = UserAgent() # 用于生成User-Agent
self.headers = {"User-Agent": ua.random} # 获得一个随机的User-Agent
self.bangdang_l = [] # 存储榜单的页面
self.subject_url_l = [] # 存储每部电影的链接
self.connect_mysql()
def connect_mysql(self):
# 连接数据库,密码后面可以加数据库名称
try:
self.mysql_conn = pymysql.connect(
'localhost', 'root', 'root', charset='utf8')
# 得到一个可以执行SQL语句的光标对象,执行完毕返回的结果默认以元组显示
self.cursor = self.mysql_co