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

java 就是做网站的吗/上海网站推广广告

java 就是做网站的吗,上海网站推广广告,展览展示设计网站,建筑公司企业管理制度全套最近有同学需要爬取一网页的中的表格,但是实际操作中遇到所要抓取的数据在另一框架中table标签中,切换不同页码,实际的url不会变化,下面主要分难点解决、代码展示和代码结构解析三部分讲述。 一、难点解决 (1&#xff…

最近有同学需要爬取一网页的中的表格,但是实际操作中遇到所要抓取的数据在另一框架中table标签中,切换不同页码,实际的url不会变化,下面主要分难点解决、代码展示和代码结构解析三部分讲述。
一、难点解决
(1)原始网页
在这里插入图片描述
(2)疑惑
要获取的数据为ajax异步请求,切换页码,网页的url也未发生变化,使用switch_to.frame也未获取信息。
几经折腾,通过开发者工具获取到异步请求的url,详见下图:
在这里插入图片描述
在这里插入图片描述
通过观察,可以看到url中包含page的参数,代码中将url进行拼接,从而实现全部表格的获得。
二、代码展示
#coding=utf-8

from bs4 import BeautifulSoup
from urllib import request
import xlwt

def get_text(url):
“”"
:param url:
:return: r.text
“”"

#该函数功能:获取html文本信息
response = request.urlopen(url,timeout = 30)
html =response.read()
html_text = html.decode("utf-8")
return  html_text

def get_datas(datas,html_text):
“”"
该函数主要实现获取表格中的数据
:param datas: 存放以前表格中数据,本次在里面继续追加
:param html_text: 本次网页html文档信息
:return:
“”"
soup = BeautifulSoup(html_text,“html.parser”)

#第一步:定位到table
table = soup.find_all("table")
#第二步:定位到tr
tab = table[0]
for tr in tab.findAll('tr'):data = []for td in tr.findAll('td'):td_text = td.getText()if td_text in ['证书编号', '资质类型', '企业名称', '资质资格序列', '专业类别', '资质资格等级']:continueelse:data.append(td_text)if data == []:continueelse:datas.append(data)
return datas

def write_xls (datas):

book = xlwt.Workbook()
sheet1 = book.add_sheet("sheet1",cell_overwrite_ok= True)i = 0
for list in datas:j = 0for data in list:sheet1.write(i,j,data)j += 1i += 1
book.save("资料.xls")
print("保存完成")

def main():
total_pages = 10
#datas用于存放数据的列表
datas = [[‘证书编号’, ‘资质类型’, ‘企业名称’, ‘资质资格序列’, ‘专业类别’, ‘资质资格等级’,""]]
for page in range(total_pages+1):
url= “http://XXXXX?page="+str(page)+"&channelid=264649&perpage=15&outlinepage=10&zsbh=&qymc=&zzlx=”
html_text = get_text(url)
datas = get_datas(datas,html_text)
print(datas)

write_xls(datas)

if name == “main”:
main()
三、代码结构
代码主要包含
(1)主函数:main()
主函数逻辑:
定义初始化参数:total_pages(总共需要遍历的页数);datas(用来存放爬取的数据,由于表格中每个表格中都有表头,直接将表头初始化,之后每一页不再存储表头)
|
for循环遍历每一页:每一页先获取html文本——》获取文本中详细数据函数
|
执行完毕后,将数据写入excel文件函数:write_xls (datas)

(2)获取html文本信息函数:get_text(url)
该模块使用request模块,打开url并获取html文本

(3)获取文本中详细数据函数:get_datas(datas,html_text)
使用beatifulsoup进行网页信息的解析,通过table——》tr——》td逐级进行定位,最终使用getText()的方法获取文本信息。

(4)将数据写入excel文件函数:write_xls (datas)
使用xlwt模块,进行将列表datas写入excel中,代码使用双重for循环实现即可。

http://www.lbrq.cn/news/1572769.html

相关文章:

  • 网站换了服务器/网站优化塔山双喜
  • 网站图片加载 优化/品牌营销平台
  • 自己做企业网站/找谁做百度关键词排名
  • 排名优化网站/搜索引擎营销的主要方式有
  • 网站开发原始数据/强力搜索引擎
  • 手机网站 wap/宁波网站快速优化
  • 赣州网上立案网址/上海关键词优化的技巧
  • 北京网站开发公司哪家好/互联网营销师有什么用
  • 邵阳做网站哪家好/百度电话怎么转人工
  • ddns做网站/新浪博客seo
  • 电商网站开发的项目描述/建站为应用技术
  • 出售网站建设群/今日热榜
  • 自己切片做网站/seo营销工具
  • wordpress搜索页面怎么仿/搜索引擎优化概述
  • 网站建设费无形资产摊销/百度软件
  • WordPress5更改logo/seo排名优化联系13火星软件
  • 北京移动端网站建设/seo关键词排名优
  • 为什么要学电商网站建设/百度新闻头条新闻
  • 深圳市人民政府网站/google 浏览器
  • 我做网站了/日照seo优化
  • phpcms v9网站建设入门/网络设计
  • 海南房产/百度seo刷排名工具
  • 深圳优质网站建设案例/品牌营销策略有哪些
  • 怎么设置批发网站怎么做/2023年时政热点事件
  • 网站图片多大比较合适/互联网广告怎么做
  • 做pc端网站咨询/seo基础知识培训视频
  • 上海政府门户网站的建设方案/个人建网站的详细步骤
  • 网站建设方案博客/佛山旺道seo优化
  • wordpress 亚马逊s3/seo刷排名工具
  • 徐州网站建设网站制作/去除痘痘怎么有效果
  • Socket 套接字的学习--UDP
  • 图论理论部分
  • 自动驾驶 HIL 测试:构建 “以假乱真” 的实时数据注入系统
  • 升级 Docker,避免执行 docker compose 时报错
  • kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?
  • MVCC和日志