当前位置: 首页 > news >正文

潍坊建设网站多少钱市政浙江建设培训中心网站

潍坊建设网站多少钱,市政浙江建设培训中心网站,邢台网红打卡地,汽车网站模板下载​#x1f308;个人主页#xff1a;Sarapines Programmer#x1f525; 系列专栏#xff1a; 爬虫】网络爬虫探秘⏰诗赋清音#xff1a;云生高巅梦远游#xff0c; 星光点缀碧海愁。 山川深邃情难晤#xff0c; 剑气凌云志自修。 目录 #x1f33c;实验目的 #x1f… ​个人主页Sarapines Programmer 系列专栏 爬虫】网络爬虫探秘⏰诗赋清音云生高巅梦远游 星光点缀碧海愁。 山川深邃情难晤 剑气凌云志自修。 目录 实验目的 实验要求  ️实验代码 1. 爬取并下载当当网某一本书的网页内容 2. 在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值 3. 从长沙房产网爬取长沙某小区的二手房信息 实验结果 1. 爬取并下载当当网某一本书的网页内容 2. 在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值 3. 从长沙房产网爬取长沙某小区的二手房信息 实验体会 总结 实验目的 Jupyter Notebook编程工具基本用法 学习掌握Jupyter Notebook编程工具的基本用法。 Python读取CSV文件 理解并熟悉使用Python编程语言读取CSV文件的方法。 学习使用爬虫 通过学习熟悉爬虫技术的使用掌握在Python环境下进行网络爬取的基本知识和技能。 实验要求  爬取并下载当当网某一本书的网页内容 通过编写Python代码实现对当当网上某一本书的网页内容进行爬取并将其保存为HTML格式这涉及到网络爬虫技术的应用。 在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值 运用自学的正则表达式技能爬取豆瓣网上某本书的前50条短评内容并计算这些评分的平均值为数据分析提供基础。 从长沙房产网爬取长沙某小区的二手房信息 以名都花园为例通过网络爬虫技术从长沙房产网长沙链家网上获取该小区的二手房信息并将这些信息保存到EXCEL文件中为房产数据的整理和分析提供便利 ️实验代码 1. 爬取并下载当当网某一本书的网页内容 import urllib.request #做爬虫时要用到的库#定义百度函数 def dangdang_shuji(url,begin_page,end_page): #三个参数 链接开始页数结束页数 for i in range(begin_page, end_page1): #从开始页数到结束页数因为range性质所以要想到达end_page得到达end_page1sName str(i).zfill(5) .html #填充为.html文件名#zfill(5)表示数字前自动补0加上字符转化的整型i一共占五位print (正在下载第 str(i) 个网页并将其存储为 sName ......) #显示爬虫细节f open(sName,wb) #w以纯文本方式读写而wb是以二进制方式进行读写 m urllib.request.urlopen(urlstr(i)) .read() #urllib.request请求模块#urlopen实现对目标url的访问#可用参数#url: 需要打开的网址#dataPost提交的数据#timeout设置网站的访问超时时间f.write(m) f.close()#调用部分 bdurl str(input(请输入您在当当网上搜索的关于某本书的网页地址)) # 注意输入网址 https://book.dangdang.com/ begin_page int(input(u请输入开始的页数\n)) #将输入的字符串类型转化为整型 end_page int(input(u请输入终点的页数\n)) #同上 dangdang_shuji(bdurl,begin_page,end_page) #调用函数 2. 在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值 import requests, re, time #获取响应时间与超时 count 0 i 0 sum, count_s 0, 0 while(count 50):#访问前50条记录if(i0):#首页内容try:proxies {http: 120.236.128.201:8060,https: 120.236.128.201:8060}headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER}url https://book.douban.com/subject/3674537/comments/?limit20statusPsortscorer requests.get(urlurl,headersheaders)except Exception as err:print(err)#打印输出错误信息break#其他页的内容else:start i*20#url中start的值try:proxies {http: 120.236.128.201:8060,https: 120.236.128.201:8060}headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER}urlhttps://book.douban.com/subject/3674537/comments/?startstr(start)limit20statusPsortscorer requests.get(urlurl,headersheaders)# print(第str(i)页内容)except Exception as err:print(err)breaksoup BeautifulSoup(r.text, lxml)# comments soup.find_all(p, comment-content)#查找所有tag值为pclass标签为comment-content的内容comments soup.find_all(span, class_short)for item in comments:count count 1# print(count, item.string)print(count,item.get_text())#打印用户评论if count 50:break pattern re.compile(span classuser-stars allstar(.*?) rating)#以正则表达式匹配网页中的内容p re.findall(pattern, r.text)for star in p:count_s count_s 1sum int(star)time.sleep(5)# 停顿5秒再开始i 1 if count 50:print(\n平均分,sum / count_s)import requests, re, time #获取响应时间与超时 from bs4 import BeautifulSoup #html的解析器主要功能是解析和提取数据 def douBan():score_list[] #用于存储得分import urllib #做爬虫时要用到的库count0i0while(count50): #求50条评价记录#首页内容if(i0):try:headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER}url https://movie.douban.com/subject/35437938/comments?limit20statusPsortnew_scorer requests.get(urlurl,headersheaders)except Exception as err:#返回报错的原因print(err)break#非首页内容else:start i*20#url中start的值try:headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER}urlhttps://movie.douban.com/subject/35437938/comments?startstr(start)limit20statusPsortnew_scorer requests.get(urlurl,headersheaders)# requests.get表示向服务器请求数据服务器返回的结果是个Response对象except Exception as err:print(err)breakrequrllib.request.Request(url,headersheaders)#Request构造一个基本的请求。headers可以模拟浏览器url为目的网址#urllib.request 模块提供了最基本的构造 HTTP 请求的方法利用它可以#模拟浏览器的一个请求发起过程同时它还带有处理 authenticaton 授权验证#redirections 重定向) cookies (浏览器Cookies以及其它内容responseurllib.request.urlopen(req)#urllib.request.urlopen(url, dataNone, [timeout,]*, cafileNone, capathNone, cadefaultFalse, contextNone)。#参数解释:#url:请求网址#data请求时传送给指定url的数据当给出该参数时请求方式变为POST未给出时为GET。#timeout:设定超时时间。如果在设定时间内未获取到响应则抛出异常。#cafile, capath分别为CA证书及其路径htmlresponse.read().decode(utf-8)#以utf-8方式读取爬取网页的内容bsBeautifulSoup(html,html.parser) #beautifulSoup提取html对象中的内容itemsbs.find_all(div,class_comment-item)findScorere.compile(span classallstar(.*?) rating)#匹配星级findNamere.compile(img alt(.*?))#正则表达式的字符串形式匹配电影名字for item in items:itemstr(item)#找出对应的五十个电影的得分scorere.findall(findScore,item)[0]scorefloat(score)score_list.append(score)#将得分存放在score_list列表中count1#计数器加1当计数器大于等于50则结束循环if(count50):breaki1#下一页time.sleep(5) # 停顿5秒print(评分表 : ,score_list)#计算平均分lengthlen(score_list)print(一共%d条信息%length)sum_score0#计算总和然后求平均分for i in score_list:sum_scoreiavgsum_score/lengthprint(豆瓣前50评价 总分为,sum_score,平均分,avg) #调用函数 douBan() 3. 从长沙房产网爬取长沙某小区的二手房信息 import requests as requ import requests #获取响应时间与超时 from bs4 import BeautifulSoup #html的解析器主要功能是解析和提取数据 import xlwt #xlwt将数据和样式信息写入excel表格的库def getHouseList(url):获取房源信息标题、链接地址、户型、面积、朝向、总价、所属区域、套内面积house []headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER} #解析内容res requests.get(url,headersheaders)soup BeautifulSoup(res.content,html.parser)housename_divs soup.find_all(div,class_title)#查找该html网页中tag值为div、class值为title的部分#指定属性查找标签for housename_div in housename_divs:housename_ashousename_div.find_all(a)#参数解释在原网页中div标志下有一个叫a的超链接。所以次数找tag值为a的元素#返回值对象数组对象内容为a超链接中的属性)for housename_a in housename_as:housename[]housename.append(housename_a.get_text())#得到超链接中的文字内容,放在housename列表中housename.append(housename_a.get(href))house.append(housename)#获取超链接中的链接放在house列表中huseinfo_divs soup.find_all(div,class_houseInfo)#参数解释获取该网页中tag值为divclass值为houseInfofor i in range(len(huseinfo_divs)):info huseinfo_divs[i].get_text()#获取houseInfo中的标题infos info.split(|)#原网页以|符号分割的这里以此做分割#小区名称house[i].append(infos[0])#户型house[i].append(infos[1])#平米house[i].append(infos[2])house_prices soup.find_all(div,class_totalPrice)#函数作用获取网页中tag值为div且class值为totalPrice的内容for i in range(len(house_prices)):price house_prices[i].get_text()#获取文字内容house[i].append(price)return house#爬取房屋详细信息所在区域、套内面积 def houseinfo(url):#为什么要分为两个函数因为这个网页中输入一个url只是得到一些基本信息#而详细信息需要到从基本信息中的链接再去提取headers {User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER}res requests.get(url,headersheaders)soup BeautifulSoup(res.content,html.parser)#headers、res、soup与getHouseList()函数中一致。基本上可以作为固定不变的部分msg []#获取房源的所在区域areainfos soup.find_all(span,class_info)#获取网页中tag值为spanclass为info的内容(以具体网页内容为准)for areainfo in areainfos:#只需要获取第一个a标签的内容即可area areainfo.find(a)#找到tag值为a超链接的内容。返回一个对象数组#具体内容为herf、target、textif(not area):#如果area为nullcontinue#如果没有这部分信息就跳过hrefStr area[href]#提取该房源的链接if(hrefStr.startswith(javascript)):continuemsg.append(area.get_text())#获取房源所在的地区名称break#由于只需要获取第一个a标签的内容所以此时就可以跳出循环#根据房屋户型计算套内面积infolist soup.find_all(div,idinfoList)#获取tag值为divid为infolist的内容#注意网站标注的总面积与实际的套内面积是不一样的所以需要重新计算num []for info in infolist:cols info.find_all(div,class_col)#网站中包含col列的有很多包括面积、方位、名称等等#老师的方法是遍历所有的col#我觉得更好的方法是将包含平米的col单独提取出来这样就无需使用tryfor i in cols:pingmi i.get_text()#获取标题面积即xxx平米try:#尝试从string中提取数字a float(pingmi[:-2])#从开头到距离尾部2个字符即把平米汉字去掉了num.append(a)except ValueError:#如果出错就跳出continuemsg.append(sum(num))#计算各户型的总面积return msgdef writeExcel(excelPath,houses):#将爬取数据写入excel文件#excelPathexcel文件存储的路径,houses包含房源基本信息的列表workbook xlwt.Workbook()#函数作用新建一个工作簿sheet workbook.add_sheet(git)#添加一行row0[标题,链接地址,户型,面积,朝向,总价,所属区域,套内面积]for i in range(0,len(row0)):sheet.write(0,i,row0[i])#作为excel表列索引for i in range(0,len(houses)):house houses[i]print(house)for j in range(0,len(house)):sheet.write(i1,j,house[j])#数据写完一行接上一行workbook.save(excelPath)#将excel工作簿保存到指定位置#主函数 def main():data []for i in range(1,5):print(-----分隔符,i,-------)#i从1到4if i1:url https://cs.lianjia.com/ershoufang/c3511059937033rs%E5%90%8D%E9%83%BD%E8%8A%B1%E5%9B%AD/#此时i1时url指向该地址else:urlhttps://cs.lianjia.com/ershoufang/pgstr(i)c3511059937033rs%E5%90%8D%E9%83%BD%E8%8A%B1%E5%9B%AD/#i不等于1时url执行不同位置houses getHouseList(url)for house in houses:link house[1]if(not link or not link.startswith(http)):#无法连接或连接协议不是http使用continue跳出循环continuemianji houseinfo(link)house.extend(mianji)data.extend(houses)#将数据整合到daya里统一写入excel表writeExcel(d:/cs.xls,data)if __name__ __main__:main()#如果模块是被直接运行的则代码块被运行#如果模块是被导入的则代码块不被运行实验结果 1. 爬取并下载当当网某一本书的网页内容 ​ ​ ​ 2. 在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值 ​ ​ 3. 从长沙房产网爬取长沙某小区的二手房信息 ​ ​ ​ 实验体会 实验学习和爬虫指令使用 通过实验首次接触了使用Python进行爬虫学到了相关爬虫指令并成功爬取了当当网和长沙二手房的信息。发现在Linux系统下使用cat语法访问.csv文件而在Windows系统下要使用type需要注意斜线的差异。 对Python库的认识和意识拓展 在此实验中通过社区查阅了相关资源附上了详细注释深化了对爬虫的理解。意识到Python语言的强大之处不论是机器学习的scikit-learn库还是爬虫的requests库都涉及到Python并体会到其调用封装在不同的库中。 爬虫问题解决和环境疑惑 遇到在Jupyter Notebook中出现‘int’ object is not callable的问题通过重新创建文件解决但对问题原因产生疑惑。怀疑问题可能与装了PyTorch导致与Python两个虚拟环境冲突但并未做实质修改问题自行解决留下疑惑。 总结 Python领域就像一片未被勘探的信息大海引领你勇敢踏入Python数据科学的神秘领域。这是一场独特的学习冒险从基本概念到算法实现逐步揭示更深层次的模式分析、匹配算法和智能模式识别的奥秘。 渴望挑战Python信息领域的技术不妨点击下方链接一同探讨更多Python数据科学的奇迹吧。我们推出了引领趋势的 Python数据科学专栏【爬虫】网络爬虫探秘旨在深度探索Python模式匹配技术的实际应用和创新。 ​
http://www.w-s-a.com/news/731179/

相关文章:

  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置
  • 牙科网站模板个人微信网站建设
  • 厦门公司注册网站dw做简单小说网站
  • 网站建好以后每年都续费么wordpress 仿聚划算
  • 单位网站建设收费标准网上开店铺需要多少钱
  • 灯饰网站需要这么做申请域名的流程
  • 软件下载网站怎么赚钱wordpress减少数据库查询
  • 什么兼职网站可以做视频剪辑常见的推广平台有哪些
  • 网站开发是用html还是jsp设迹官网
  • 查公司信息的网站怎么学wordpress
  • 白银做网站长春一般建一个网站需要多少钱
  • 帮人做钓鱼网站的人网络推广培训职业学校
  • 淘宝客有必须做网站吗网站开发的形式有( )
  • 网站建设:上海珍岛网页版qq空间登录
  • 网站服务器ipteahouse wordpress主题
  • 深州市住房保障和城乡建设局网站做网站公司叫什么
  • 织梦网站转跳手机站注册公司代理记账费用
  • wordpress建站Pdf亚马逊aws在线观看
  • 做网站的外包公司有哪些WordPress调用json数据