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

上海城乡建设网站证件查询国内永久免费saascrm

上海城乡建设网站证件查询,国内永久免费saascrm,企业网站营销的典型案例,东营网约车接#xff0c;基础篇#xff0c;链接#xff1a;python爬虫入门#xff08;所有演示代码#xff0c;均有逐行分析#xff01;#xff09;-CSDN博客 目录 1.爬取博客网站全部文章列表 ps:补充#xff08;正则表达式#xff09; 爬虫实现 爬虫代码#xff1a; 2.爬… 接基础篇链接python爬虫入门所有演示代码均有逐行分析-CSDN博客 目录 1.爬取博客网站全部文章列表 ps:补充正则表达式 爬虫实现 爬虫代码 2.爬取豆瓣电影top250榜 爬虫代码 3.爬取北京天气十年数据 爬虫代码 1.爬取博客网站全部文章列表 ps:补充正则表达式 PS:这里涉及到python基础语法中正则表达式的内容 课第三阶段-09-正则表达式-基础方法_哔哩哔哩_bilibili 实例代码 import reurl1 http://www.crazyant.net/1234.html url2 http://www.crazyant.net/1234.html#comments url3 http://www.baidu.compattern r^http://www.crazyant.net/\d.html$ #r使\d这类转义字符作为一个整体出现而不是分开的\d的意思\d表示一个十进制的数字 [0-9]\d代表十进制的数字有多个print(re.match(pattern,url1)) #ok print(re.match(pattern,url2)) #none print(re.match(pattern,url3)) #none 运行结果图 爬虫实现 创建Python Package命名为blog_test 在package下创建url_manager.py文件用于存放url管理器模块代码 url管理器代码 class UrlManager():url管理器def __init__(self):#定义一个初始化函数self.new_urls set()#新的待爬取url的集合self.old_urls set()#已爬取url的集合def add_new_url(self, url):#定义新增单个url的方法一,传一个参数urlif url is None or len(url) 0:#判断url是否为空或长度为0return#符合上述条件就停止增加if url in self.new_urls or url in self.old_urls:#判断url是否已经被记录在集合里return#已经载集合里的url不新增self.new_urls.add(url)#上述干扰条件排除后url就可以加入待爬取的集合中def add_new_urls(self,urls):#定义新增url的方法二传一个参数urlsif urls is None or len(urls) 0:#判断参数urls是否为空returnfor url in urls:#不为空就将单个url循环传入单个判断url方法中经行判断存储self.add_new_url(url)def get_url(self):#定义获取新url的函数if self.has_new_url():#如果存在待爬取的urlurl self.new_urls.pop()#就将待爬取的url从集合中移除并返回self.old_urls.add(url)#将移除的url加入已爬取的集合中return url#并将其返回else:return Nonedef has_new_url(self):#定义一个判断url是否存在等待爬取的urlreturn len(self.new_urls) 0#如果待爬取集合中有元素就分返回这个集合测试代码 if __name__ __main__: #文件内置变量仅在执行当前文件时可用。当此文件被调用时此出变量不会被执行。因此测试代码时一般加上这句话url_manger UrlManager()#调用整个类url_manger.add_new_url(url1)url_manger.add_new_urls([url1, url2])#故意增加一个重复的urlprint(url_manger.new_urls, url_manger.old_urls)print(# * 30)new_url url_manger.get_url()print(url_manger.new_urls, url_manger.old_urls)print(# * 30)new_url url_manger.get_url()print(url_manger.new_urls, url_manger.old_urls)print(# * 30)print(url_manger.has_new_url()) 在package下创建craw_all_pages.py文件用于存放爬虫代码 爬虫代码 import url_manager import requests from bs4 import BeautifulSoup import reroot_url http://www.crazyant.neturls url_manager.UrlManager() #引入之前的url管理器模块 urls.add_new_url(root_url) #初始化url管理器fout open(craw_all_pages.txt, w, encodingutf-8) #初始化文件打开文件定义为可写入模式while urls.has_new_url(): #如果有新的uelcurr_url urls.get_url()#循环获取urlr requests.get(curr_url, timeout3)#爬取获取到的url同时定义timeout3防止页面卡死if r.status_code ! 200:#如果状态码不是200,print(error,return status_code is not 200, curr_url)#输出上面的句子和当前的urlcontinuesoup BeautifulSoup(r.text, html.parser)#获取url的所有内容title soup.title.string#soup.tite快速获取title节点.string得到title里面的文字fout.write(%s\t%s\n % (curr_url, title))# %s将字符串按照指定格式输出\t:空格\n换行%(curr_url, title)将前面的内容传入后面fout.flush()# 内存中的数据刷到磁盘里print(success:%s, %s, %d % (curr_url, title, len(urls.new_urls)))links soup.find_all(a)# 找到所有的a节点for link in links:href link.get(href)# 获取href标签中的所有内容if href is None:# 如果href中没有内容continue# 跳过并继续执行pattern r^http://www.crazyant.net/\d.html$if re.match(pattern, href):#字符串匹配查找看看href格式是否与我们所需数据格式一致urls.add_new_url(href)#将找到的href添加到fout.close() 运行结果 2.爬取豆瓣电影top250榜 爬取内容榜单数标题评分和评价人数。 查看豆瓣250的url可以看到每一页都不一样间隔25最后一页start225 查找需要爬取的信息 电影排行、电影名称、电影评分和评价人数。 爬虫代码 1.使用requests爬取网页 2.使用BeautifulSoup实现数据解析 3.借助pandas将数据写出到Excel import requests from bs4 import BeautifulSoup import pandas as pd import pprint#构造分页数字列表 page_indexs range(0, 250, 25) #从0开始到250取不到250每个25个数字取一个,形成一个可迭代的对象而不是列表 list(page_indexs) #构造列表 #需要将User-agent修改成自己的 headers {User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0 }def downlode_all_htmls():下载所有列表页面的HTML用于后续的分析htmls []for idx in page_indexs:url fhttp://movie.douban.com/top250?start{idx}filterprint(craw html:,url)r requests.get(url,headersheaders)if r.status_code ! 200:raise Exception(error)htmls.append(r.text)return htmls #执行爬取 htmls downlode_all_htmls()def parse_single_html(html):解析单个HTML得到数据return list({link,title,[label]})soup BeautifulSoup(html, html.parser)#获取每个电影的信息article_items (soup.find(div,class_article).find(ol,class_grid_view).find_all(div,class_item))datas []for article_item in article_items:#排序数字rank article_item.find(div,class_pic).find(em).get_text()#分步实现首先获取文章的infoinfo article_item.find(div,class_info)#然后获取标题title info.find(div,class_hd).find(span,class_title).get_text()#获取五星评级、评分、评价人数,span有4个所以使用find_allstars (info.find(div,class_bd).find(div,class_star).find_all(span))#星级为第一个spanrating_star stars[0][class][0]#评分为第二个spanrating_num stars[1].get_text()#评分人数为最后一个spancomments stars[3].get_text()datas.append({rank:rank,title:title,rating_star:rating_star.replace(rating,).replace(-t,), #去掉前缀和后缀rating_num:rating_num,comments:comments.replace(人评价,) #把人评价去掉})return datas#pprint可以漂亮的打印数据 pprint.pprint(parse_single_html(htmls[0]))#执行所有的HTML页面的解析 all_datas [] for html in htmls:all_datas.extend(parse_single_html(html)) print(all_datas) print(len(all_datas))df pd.DataFrame(all_datas) print(df) #这里想直接输出excel需要安装openpyxl库 df.to_excel(豆瓣电影TOP250.xlsx) 3.爬取北京天气十年数据 爬取目标http://tianqi.2345.com/wea_history/54511.htm 涉及技术 headers中设置user agent反爬机制 通过network抓包分析ajax的请求和参数 通过for循环请求不同的参数的数据 利用pandas实现excel的合并与保存 首先进入网站更换年份、月份发现网站地址没有改变 可以判断出网页存在隐藏的步奏需要对网页进行抓包操作 右键检查选择网络network不关闭页面的同时点击更改年份抓包获取数据 点击获取到的数据在请求头中找到Uer_Agent也可以看到请求方式为get 查看请求参数 查看响应内容 爬取网址  爬虫代码 import time import requests import pandas as pd from numpy.random import random import random#设置随机休眠时间防止ip被禁 time.sleep(random.random()*3)url http://tianqi.2345.com/Pc/GetHistory #请求头防拦截 headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.97 Safari/537.36 Core/1.116.454.400 QQBrowser/13.2.6134.400,Cookie:Hm_lvt_a3f2879f6b3620a363bec646b7a8bcdd1729388880; HMACCOUNT52D6CD0BBA8BE5AD; Hm_lpvt_a3f2879f6b3620a363bec646b7a8bcdd1729388945,Referer:http://tianqi.2345.com/wea_history/54511.htm }def craw_table(year, month):提供年费烦恼和月份爬取对应的表格数据#将参数传过来params {areaInfo[areaId]: 54511,areaInfo[areaType]: 2,date[year]: year,date[month]: month}resp requests.get(url, headersheaders, paramsparams)data resp.json()[data]#解析网页中所有的表格取第一个元素df pd.read_html(data)[0]return dfdf_list [] for year in range(2014, 2024):for month in range(1,13):print(爬取:,year, month)df craw_table(year,month)df_list.append(df)pd.concat(df_list).to_excel(北京10年天气数据.xlsx,indexFalse)
http://www.hkea.cn/news/14472951/

相关文章:

  • 深圳建立企业网站wordpress 计数
  • 网站推广烟台公司电话长春招聘网智联
  • 建自己的网站用多少钱网站原创文章规范
  • wordpress footer设置重庆seo博客
  • 万网怎么更改网站名字的微平台是什么意思
  • 网站建设上机考试题目网站seo优化外包
  • 黄陂建设网站路由器做网站教程
  • 一流的聊城网站建设中国网站备案
  • 做网站济南西开源自动化运维平台
  • 里水网站开发池州专业网站建设怎么样
  • 社区网站怎么建服装网站开发方案swot
  • 济南网站建设招聘东营网站建设铭盛信息
  • 上海知名装修公司排名榜河南seo
  • window服务器如何做网站访问免费个人博客网站模板下载
  • 沈阳 商城 网站 开发网站设计分析报告
  • 城乡住房规划建设局网站建立一个平台需要几部分
  • 威海网站建设吧建工教育网
  • 企业网站怎么扣费的WordPress分类目录 前100篇
  • 公路水运建设质量与安全监督系统网站开贴纸网站要怎么做
  • 手机兼职平台app排行榜前十名哈尔滨做网站seo的
  • 新纪实网站建设wordpress 产品页 如何关联
  • 潍坊高新区建设局网站成都app定制开发公司
  • wordpress 小工具添加图片二十条优化
  • 深圳精品网站建设公司私人可以有官方网址吗
  • 安装vs2015网站开发页面设计需求需要做哪些方面
  • 网站程序是什么意思施工企业安全总监职责履行情况
  • 如何做商业网站免费打开的网站
  • 自己的电脑做网站可以吗seo效果检测步骤
  • 学生怎样建设网站seo学习论坛
  • wordpress电商主题搭建seo快速排名软件方案