爬虫学习笔记

2021-03-10  本文已影响0人  justgo_b2cd

本篇笔记主要记录学习哔站up主:IT私塾的课程《Python爬虫基础5天速成(2021全新合集)Python入门+数据可视化》所做的笔记。
课程主要任务:爬取豆瓣电影top250电影的基本信息,包括电影的名称、豆瓣评分、电影概况、电影链接等。

#加载所需要的包
from bs4 import BeautifulSoup
import re,sys,xlwt,urllib,sqlite3
import urllib.request
##如果运行的过程报ssl的错误,可以加入以下两行代码
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

1. 观察网址特点
豆瓣电影的网页url:https://movie.douban.com/top250,每页25步电影,一共10页展示完top250电影

豆瓣电影top250截图

2. 确定url地址,伪装自己不被阻拦,定义读取url的函数
首先使用chrome浏览器开发者模式,找到自己电脑的'User-Agent'(要爬取哪个网址,就打开哪个网址找到自己的User-Agent)

def main():
    base='https://movie.douban.com/top250?start='
    askURL(base)
#得到一个网页的具体信息,即:把网页储存为变量
def askURL(url):
    head={'User-Agent':' Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'}
    request=urllib.request.Request(url,headers=head)
    html=""
    reponse=urllib.request.urlopen(request)
    html=reponse.read().decode('utf-8')
    return html
main()

3. 逐一解析网页
2中定义了解析一个网页的函数,由于top25是是由10个网页组成,所以我们要写一个循环,逐个解析每个网页

def getdata(baseurl):
    datalist=[]
    for i in range(0,10):#生成每页网址的url
        url=baseurl+str(i*25)
        html=askURL(url)#调用askURL,抓取每个网页的信息
        #解析网页
        bs=BeautifulSoup(html,'html.parser')#调用函数,将网页解析为树状结。
        print(bs)#图1是打印后的结果
图1

笔记会持续更新

上一篇 下一篇

猜你喜欢

热点阅读