大致的流程是:1.发送请求 2.接受信息,提取信息 3.保存信息

发送请求

1.用到的库是urllib .==urllib.requst.urlopen(url,head)==是发送语句,它返回的是网页的源代码,也是我们要的信息,只不过后面要提取。url是我们的目的网址,head是我们要伪装的头部。代码readurllib.requat.Requst{ A} 其中的A是字典的形式,也可以是列表包含字典。
2.response=urill.requst.urlopen(url,head) ,html=response.read.decode(“utf-8”) 是把response读出来并用“utf-8”的方法解释出来


def askURL(url):head={    #模拟浏览器头部信息,向浏览器发送消息"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}#用户代理,表示告诉服务器,我们是上面类型的机器(本质上告诉浏览器我们可以获得什么样的数据)red=urllib.request.Request(url,headers=head)# headers={#     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"# }# red=urllib.request.Request(url=url,headers=headers)html=""try:# response=urllib.request.urlopen(red)response=urllib.request.urlopen(red)html=response .read().decode("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

接受并提取信息

##1. 正则提取。用re.compile(r’ ')进行。正则表达式中有一个括号时,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果。下面给出正则表达式的一些信息

#正则表达式中有一个括号时,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果
#影片详情的规则
findlink=re.compile(r'<a href="(.*?)">')  #创建正则表达式,表示规则(字符串的模式)
#图片的规则
findImgSrc=re.compile(r'<img.*src="(.*?)".*/>',re.S)   #re.S 让换行符包括在里面
#影片片名
findTitle=re.compile(r'<span class="title">(.*)</span>')
#影片评分
findRating=re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
#评价人数
findJude=re.compile(r'<span>(\d*)人评价</span>')
#概况
findIng=re.compile(r'<span class="inq">(.*)</span>')
#相关内容
findBd=re.compile(r'<p class="">(.*?)</p>',re.S)

2.因为有10页,所以我们要用for循环,for i in range(0,10):

    url=baseurl+str(20*i)    ,获取网页的信息,记得加strhtml=askURL(url),把获取是信息传入进来。soup=Beautifulsoup(html,"heml.parser" 把html以html.parser这种方式解析for item in soup.find_all"div",class_="item"  在soup里面 找到标签里面只要有"div",class_="item"这个字符串即有div和claa=item就把她里面的内容放进列表里面。class记得加_,表示他的属性值,放进一个列表link=re.findall(findlink,item)[0]    如果有多个【0】表示第一个

注意:soup.find_all"div",class_=“item” 返回的是一个标签及其子标签
re.findall(findlink,item)是返回的是用列表封装的符合正则表达式的字符串

#爬取网页,解析数据
def getData(baseurl):datalist=[]for i in range(0,10):url=baseurl+str(20*i)    #获取网页的信息,记得加strhtml=askURL(url)#解析数据soup=BeautifulSoup(html,"html.parser")for item in soup.find_all("div",class_="item"): #查找符合标准的字符串,class记得加_,表示他的属性值,放进一个列表# print(item)   #测试:查看item的所以信息data=[]item=str(item)#影片详情的链接link=re.findall(findlink,item)[0]    #如果有多个【0】表示第一个data.append(link)# print(link)# print(findlink)imgSrc=re.findall(findImgSrc,item)[0]data.append(imgSrc)title=re.findall(findTitle,item)if(len(title)==2):ctitle=title[0]data.append(ctitle)    #添加中国名字otitle=title[1].replace("/","")   #因为外文名有/,所以用” “替换”/“otitle=otitle.replace("\xa0\xa0","")data.append(otitle)else:data.append(title[0])data.append(' ')    #只有中国名字,第二个也要添加空格rating=re.findall(findRating,item)[0]data.append(rating)judeNumber=re.findall(findJude,item)[0]data.append(judeNumber)ing=re.findall(findIng ,item)if len(ing)!=0:ing=ing[0].replace("。","")  #去掉句号data.append(ing)else:data.append(" ")bd=re.findall(findBd ,item)[0]be=re.sub('<br(\s+)?/>(\s+)?',"",bd)   #匹配空白和tabj键be=re.sub('/',"",be)data.append(be.strip())   #去掉前后空格datalist.append(data)# print(datalist)for i in datalist:print(i)return datalist

存储数据

1.#workbook=xlwt.Workbook(encoding=“utf-8”) #创建workbook对象

#worksheet=workbook.add_sheet(‘sheet1’) # 创建一个工作表

worksheet.write(0,0,‘hello’) #写入数据,第一个参数“行”,第二个参数“列”,第三给参数内容

workbook.save(‘student.xls’) #将她保存在student表中

def saveData(datalist,savepath):print("save---")book=xlwt.Workbook(encoding="utf-8")   #在进行新的运行的时候记得关闭excel表格sheet=book.add_sheet('豆瓣电影Top250')col=("电影详情链接","图片链接","电影中文名","电影外国名","评分","评价人数","概况","相关信息")for i in range(0,8):sheet.write(0,i,col[i])for i in range(0,250):print("第%d条"%i)data=datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])book.save(savepath)

Python3 re.findall()方法 及 re.compile()

Python3 re.findall()方法 及 re.compile()

豆瓣电影Top250 步骤解析相关推荐

  1. append从一个添加到另一_真特么激动第一个爬虫----爬取豆瓣电影top250

    养成习惯,先赞后看!!! 前言 之前一直对爬虫有兴趣,但是一直没有真正静下心来去好好学习过,这一段时间跟着b站上的一个教程做了自己人生中第一个爬虫程序,还是很有成就感的. 准备工作 1. 我们爬取一个 ...

  2. python爬虫-豆瓣电影Top250

    豆瓣电影Top250 一.准备环境 idea+python插件/python 一.需求分析 1. 运用代码获取豆瓣电影Top250里面电影的相关信息: 影片详情链接: 影片名称: 影片图片链接: 影片 ...

  3. 案例:爬取豆瓣电影Top250中的电影信息

    案例:爬取豆瓣电影Top250中的电影信息 豆瓣电影Top250首页 分析请求地址 在豆瓣电影Top250首页的底部可以确定电影信息一共有10页内容,每页25个电影信息,如下图: 切换页面,可以看到浏 ...

  4. python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250

    今天要实现的就是使用是scrapy爬取豆瓣电影TOP250榜单上的电影信息. 步骤如下: 一.爬取单页信息 首先是建立一个scrapy项目,在文件夹中按住shift然后点击鼠标右键,选择在此处打开命令 ...

  5. 03_使用scrapy框架爬取豆瓣电影TOP250

    前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关 ...

  6. 爬虫——豆瓣电影top250

    爬虫--豆瓣电影top250 无论是动态网页爬虫和静态网页爬虫,实现的思路基 本上都是获取页面 html.页面解析.数据保存或输出.虽然获取页面 html 以及数据保存都 已经封装为通用函数,但依然编 ...

  7. 爬虫实战——豆瓣电影Top250

    爬虫实战--豆瓣电影Top250 准备阶段 网页分析 在目标网页直接ctrl+u查看网页源代码(或者F12审查),豆瓣的网页源代码就出现了(非常友好): <!DOCTYPE html> & ...

  8. Python数据采集案例(3):豆瓣电影TOP250采集

    作者:长行 时间:2020.05.28 实现目标 本案计划实现:通过网络请求,获取豆瓣电影TOP250的数据,并存储到Json文件中. 案例应用技巧: GET请求(requests):headers ...

  9. 爬虫实战:爬取豆瓣电影 Top-250 到 Excel 表格中

    最近在家无聊自学了python的一些基础知识.后来看到许多朋友都在写爬虫,自己感觉很有意思,也想试一下 >____< 其实本来我是想将数据爬取到excel之后再增加一些数据库操作,然后用f ...

最新文章

  1. celery源码分析:multi命令分析
  2. Orleans入门例子
  3. 手机的小窗口怎么弄_荣耀9X如何设置桌面小工具?划重点,这个要考
  4. docker内程序如何读取dockerfile和compose.yml中设置的环境变量
  5. Gradle[1]gradle distZip时,增加目录信息到zip中
  6. 客户端连接故障检查流程手段
  7. ibm mq qname java_IBMMQ 从队列获取消息并将消息发送到特定主题上面
  8. maven创建Java 和 Web Project, 并导入Eclipse
  9. Mysql为什么多个大版本并行发布的个人理解
  10. 单片机编程软件IAR和烧写软件SmartRF安装教程(超详细)
  11. matlab输出语句fprintf格式,matlab输出语句fprintf
  12. html5蓝牙模块,HC-05蓝牙模块介绍
  13. 智驾仿真-摄像头仿真方案总纲
  14. python如何屏幕截图_Python实现屏幕截图的两种方式
  15. PCI-E 1x, 4x, 8x, 16x 接口定义
  16. 第三版全球干旱指数和潜在蒸散数据发布
  17. 全球及中国大健康产业投资潜力与运营价值分析报告2022-2028年
  18. Android 中设置指定语言
  19. 解决matplotlib绘制图片时plt.savefig()后图片全黑的问题
  20. 引申5“生命起源VS电影机械公敌VS大数据、人工智能“

热门文章

  1. 驻足思考:瞬间整理思路并有力表达(先设个坑,不断学习整理)
  2. 数据结构 活期储蓄账目管理(课程设计完整实验报告)
  3. html 任务列表,任务列表.html
  4. 微信统一下单 java_微信支付之统一下单--JAVA版
  5. 考研数学公式Day1:对secx与cscx的积分
  6. pytorch转onnx的c++调用
  7. 巨人之后的史蒂夫·鲍尔默和蒂姆·库克
  8. 现在计算机学什么好找工作吗,计算机专业炙手可热,几年之后会不好找工作吗?值得学习吗?...
  9. 关于读书 - 如何读书
  10. sougou ubuntu 优麒麟_在Ubuntu 19.10/优麒麟19.10中安装搜狗输入法Linux 2.3版