本文仅供学习交流,如有错误纰漏,还请谅解,欢迎大家一起来学习探讨!
参考资料(感谢大佬们分享的代码)
python3实战|python3爬取豆瓣top250备份到数据库:
https://blog.csdn.net/qq_36523839/article/details/71423984
Python爬取豆瓣电影TOP250并存入MySql数据库:
https://www.jianshu.com/p/e49bdec40cac
Python爬虫(3):爬取豆瓣电影TOP250:
https://zhuanlan.zhihu.com/p/26304106
爬取准备
需要导入的包
import uuid
import requests
from lxml import html
import re
import os
import pymysql
模块1:爬取数据并保存本地
解析网页源代码,寻找到网页的内容节点并加以提取。使用.xpath()获取所需元素,同时将数据以.csv文件格式保存至本地。(这一步应该是针对后面数据导入数据库而设计的,且当为一种数据库导入方法)最后加以循环,获取完整数据。
def get_douban_top250():
print("--------")
print('正在获取豆瓣TOP250影片信息并保存至本地...')
index = 1
page_count = 10
for i in range(page_count):
## 内容节点
url = 'https://movie.douban.com/top250?start={}&filter='.format(i * 25)
url_content = requests.get(url).content
doc = html.fromstring(url_content)
for y in doc.xpath('//div[@class="info"]'):
...
(xpath用于定位元素,text用于提取文本,用法可类比于路径设置,比如“D:\\...\\...\\douban.txt”,
xpath则是,.xpath('//div[@class="info"]/div[@class="hd"]/a/span[@class="title"]/text()')[0]---
----指的是在所有info标签里,找到hd标签下的a标签里的span标签,并提取出内容)
## 获取影片名称
name = y.xpath('div[@class="hd"]/a/span[@class="title"]/text()')[0]
# print(name)
...
## 上映日期(replace用来替换字符,split用来切割字符串----注意需要对“\xa0”等特殊字符进行替换规范数据格式)
dates = move_content[1].replace(" ", "").replace("\n", "").split("/")[0]
dates = dates.replace("\xa0", "").replace("\xee", "").replace("\xf6", "").replace("\u0161", "").replace