首页 > 其他分享 >练习爬取豆瓣

练习爬取豆瓣

时间:2023-02-09 15:13:57浏览次数:36  
标签:__ 练习 html urllib 爬取 item 豆瓣 print import

#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()

标签:__,练习,html,urllib,爬取,item,豆瓣,print,import
From: https://www.cnblogs.com/tgfoven/p/17105373.html

相关文章

  • Python爬虫爬取html中div下的多个class标签并存入数据库
    使用python爬虫爬取html页面div中的多个class标签,获取后将数据存成列表,然后存入数据库importmysql.connectorimportpymysqlimportrequestsfrombs4importBeautif......
  • 【CCCC】PAT : 团体程序设计天梯赛-练习集 L1 答案
    【CCCC】PAT:团体程序设计天梯赛-练习集L1答案鉴定完毕,全部水题ヾ(•ω•`)o标号标题分数通过数提交数通过率L1-001​​HelloWorld​​5467791127780.41L1-002​​打......
  • 【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)
    【CCCC】PAT:团体程序设计天梯赛-练习集L3答案顶着满课,整整一星期,终于咕完了。(;´д`)ゞ知识点分类(23):1、搜索模拟(5):BFS,DFS,最短路,路径打印2、计算几何(5):找规律,斜率计算,极角排......
  • 【codevs1081】线段树练习2
    problemsolutioncodes#include<iostream>usingnamespacestd;constintmaxn=100010;#definelchp<<1#definerchp<<1|1structnode{intval,addmark;}sgt[maxn<<......
  • 【codevs1080】线段树练习
    problemsolutioncodes#include<iostream>usingnamespacestd;constintmaxn=100010;#definelchp<<1#definerchp<<1|1structnode{intval,addmark;}sgt[maxn<<......
  • javascript:DOM/BOM练习
    javascript:DOM/BOM练习    一、BOM/DOM练习内容1<!DOCTYPEhtml>2<html>3<head>4<metacharset="utf-8">5<title>菜鸟教程(runoob.com)</t......
  • 开学考前练习题的一点小思路
    大概是因为比较笨,刚看到王老师发的参考练习题时我是没有看懂的。原本本着熟悉一下流程的想法试了试,结果除了实现登陆外就没有什么太大的进展。后来又研究了研究,有了一点......
  • c语言练习
    练习C语言题第一题:统计素数并求和比较重要的几个步骤:对1进行特殊处理if(m==1){m=2;}定义一个变量,用给变量赋值的不同来进行判断是否为素数......
  • C语言填空:switch case练习
    /*下列程序的功能为:实现加、减、乘、除四则运算。*///【1】【2】【3】【4】【5】【6】【7】【8】【9】【10】#include<stdio.h>voidmain(){inta,b,d;......
  • 爬取天气信息
    前言之前尝试写过一个爬虫,那时对网页请求还不够熟练,用的原理是:爬取整个html文件,然后根据标签页筛选有效信息。现在看来这种方式无疑是吃力不讨好,因此现在重新写了一个爬......