从零开始学爬虫(爬取豆瓣),一看就会

本文介绍了一个Python爬虫项目,旨在抓取豆瓣电影Top250的详细信息,包括影片链接、海报、中文名、外文名、评分、评价人数等,并将数据保存至Excel表格。

一、 准备工作

语言:python
编辑器:pycharm
需要导的包:bs4、re、urllib、xlwt(可以通过左上角file->settings->project->interpreter->右边加号导包)
爬虫就是编写程序模拟浏览器打开网页获取需要的内容
在这里插入图片描述

二、 构建流程

from bs4 import BeautifulSoup #网站解析,获取数据
import re #正则表达式
import urllib.request,urllib.error #指定url
import xlwt #excel操作
import sqlite3 #数据库操作
def main():
    baseurl = "https://movie.douban.com/top250?start="
    #获取数据
    datalist = getData(baseurl)
    #保存文件
    savepath = ".\\豆瓣.xls"
    saveData(datalist, savepath)
    #askUrl(baseurl)
    pass

#获取爬取的网页数据
def getData(baseurl):
    datalist = []
	return datalist

#得到指定一个url的网页内容,后面会将urllib的使用
def askUrl(url):
    #用户代理  表明是什么类型的浏览器
    head = {
   
   
        "User-Agent":"Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 85.0.4183.102Safari / 537.36"
    }
    req = urllib.request.Request(url=url,headers=head)
    html = ''
    try:
        res = urllib.request.urlopen(req)
        html = res.read().decode('utf-8')
        return html
    except urllib.error.URLError as e:
        if hasattr(e,"code"):
            print(e.code)
            pass
        if hasattr(e,"reason"):
            print(e.reason)
            pass
    pass


#保存数据
def saveData(datalist, savepath):
	pass

main()

三、各种工具的使用

1、urllib的使用

urllib 是一个收集了多个涉及 URL 的模块的包:

urllib.request 打开和读取 URL

urllib.error 包含 urllib.request 抛出的异常

urllib.parse 用于解析 URL

urllib.robotparser 用于解析 robots.txt 文件

所以我们可以新建一个testUrllib.py文件,单独测试下urllib的使用

import urllib.request,urllib.error,urllib.parse
#首先定义一个url
url = "http://www.douban.com"
#设置header的user-agent原因是如果不设置,会显示user-agent:python-urllib,从而有时候爬取失败,所以要伪装成是用浏览器打开
headers = {
   
   
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
}
#post 将传递的data数据包装起来
data = bytes(urllib.parse.urlencode({
   
   "hello":
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值