基础小白,大佬轻点喷~
一、基础豆瓣爬虫
1、首先在某站上听讲解,简单建立起了对爬虫的基础框架,具体包括五个板块(当然 有些东西看个人 可写成函数 也可以直接写 但重复用到的东西建议写函数)
用到了下面五个库:
from bs4 import BeautifulSoup ##网页解析,获取数据
import re ##正则表达式,进行文字匹配
import urllib.request,urllib.error ##制定URL,获取网页数据
import xlwt ##进行excel操作
import sqlite3 ##进行SQLite数据库操作
然后在主函数写爬取网页的步骤(在脑海有个框架)
def main():
baseurl = "https://movie.douban.com/top250?start="
# 1.爬取网页
datalist = getData(baseurl)
savepath = "豆瓣电影Top250.xls" ##./和不写就是当前文件夹 .\\就是文件系统
dbpath = "movie.db"
# 3.保存数据
saveData(datalist,savepath)
# savaData2DB(datalist,dbpath)
#askURL("https://movie.douban.com/top250?start=")
保存路径有两个方式,一个是保存到Excel,另一个是保存到MySql(数据量小可选择前者 量大则选择后者)
2、然后写爬取网页的函数,注意观察豆瓣页面,一共10页,每页25个电影。https://movie.douban.com/top250?start=(具体数字) 0就是第一页 ,以此类推
故可用循环写入列表中
def getData(baseurl):
datalist = []
for i in range(0,10): ##调用获取页面信息的函数 10次
url = baseurl +str(i*25)
html = askURL(url) ##保存获取到的网页源码
通过BeautifulSoup 解析网页,获取数据
soup = BeautifulSoup(html,"html.parser")
for item in soup.find_all('div',class_="item"): ##查找符合要求的字符串,行程列表
#print(item) ##测试查看电影item 全部信息
data = [] ##保存一部电影的所有信息
item = str(item)
3、模拟浏览器头部信息,向豆瓣服务器发送消息,用户代理表示告诉豆瓣服务器,我们是什么类型的机器 浏览器(本质上是告诉浏览器,我们可以接受什么水平的文件内容)可以去主函数测试一下askURL,看是否成功模拟浏览器
def askURL(url):
head = { "User-Agent": "Mozilla / 5.