D
G
O
L

练习爬取豆瓣

#python爬虫的系统学习1
from bs4 import BeautifulSoup
import requests
import re #正则表达式
import urllib.request,urllib.error
import xlwt
import sqlite3

findlink=re.compile(r'<a herf="(.*?)">')
def spider():
    testurl="https://movie.douban.com/top250?start=0&filter="
    datalist=getData(testurl)
    #爬取网页,获取数据
    #解析数据
    #保存数据
    #askUrl(testurl)
    savepath="F:/pythoncunchu/top250.xls"
def getData(baseurl):
    datalist=[]
    for i in range(0,1):
        url=baseurl+str(i*25)
        html=askUrl(url)
        bs=BeautifulSoup(html,'html.parser')
        for item in bs.find_all('div',class_='item'):    #查找符合要求的字符串,返回列表,class_表示class属性
            data=[]#保存一部
            item=str(item)
            print(item)
            
        
    return datalist
def saveData(path):
    pass  
#获取网页
def askUrl(url):
    head={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30"
    }#爬虫伪装成浏览器
    newurl=urllib.request.Request(url,headers=head)#将链接封装一下,把爬虫伪装成浏览器,换成了一个新的链接
    html=""#记录下链接获取到的网页
    try:
        rep=urllib.request.urlopen(newurl)#打开链接,返回网页
        html=rep.read().decode('utf-8')#再将网页解析,变成utf-8文件
        #print(html)  
    except urllib.error.URLError as e:
        if hasattr(e,'code'):
            print(e.code)
        if hasattr(e,'reason'):
            print(e.reason)
    return html
if __name__=="__main__":
    spider()
posted @ 2023-02-09 15:09  jinganglang567  阅读(30)  评论(0)    收藏  举报