爬虫:1.若未创建项目:
先创建项目,接下来步骤相同。
进入创建的project的文件夹,scrapy genspider example example.com 就是创建一个爬虫
2.打开pycharm:
加载.cfg所在文件的那个目录!
1.修改urls的网址为要爬取数据的那个网址
2.然后用scrapy views “网址” 查看是否能爬数据 有时候出现一行404 robot.txt,可以去setting文件中将robot那个设置为false
3.xpath问题:之后在页面上点击检查,copy xpath,还要在xpath路径后面跟上/text() 再加上extract_first()
Xpath一定要注意,要利用shell工具先response.xpath筛选,因为网站初始div是从0开始,但是copy的xpath是直接从1开始的!!!而div下属的子div是从1开始的!,通过
Div的class的属性判断位置进行判断
Xpath中tbody省略,不要加这个属性,直接tr、td
接着处理格式问题,当xpath爬取的数据中有\r\t\n时,在前面加以下代码
user=selector.xpath(’
normalize-space(
//*[@id=“Con”]/tr[1]/th/text())’)
response.xpath(’/html/body/div[5]/div[2]/div[3]/table/tr[position()>2 and position()<23]’)可以选取tr的范围,这是xpath的语法
然后在items中创建实例,导入该实例
接下来跟老师发的笔记一样
运行这代码找结果
Spark&python:
疑问:Dataframe进行排序,python打印依然有序,但是存入数据库中则会乱序?但是sortBy就没有问题,并且其id十分工整,不像先进行完row在df处理,会导致id乱序
Python中 for i in range():在这里面假设初始i=1,则不管令i为多少,下一次执行时i依旧为2,而不是for中所赋值的值
执行一个函数,若需要它在执行完函数后依旧能够使用,需要命名为全局变量,否则会报错:local variable ‘test’ referenced before assignment
加上global以后就可以完成
我的CDP年份就是靠此为每个数据增加了一列year
写sql语句时换行要记得加个空格在换行,不然拼接时系统会自动拼合
可视化:
若是扇图,看echarts中data部分,若是字典,则可直接data.series取出传来的值,若是bar图,则data部分是列表部分
Postman负责查看后台数据是否过去,然后再浏览器调试看数据是否传过去
若postman有时候坏了,就进程中结束python.exe试试
有很多部分都一样,可以直接抄,最重要的就是option部分,在echarts中先确定好,在移到js中
错误:3D图无法得到加载
错误原因:Component series lines3D not exists…
解决方法:需要从网上贵echarts的官网在下一个echarts-gl.js的包,我在网站直接点击源代码将其复制粘贴入一个文件,改名为echarts-gl.min.js,问题得到解决!
Hdfs:上传文件时发现无法上传,因为datanode没有启动,原因是多次格式化,若无重要数据,可选择删除tmp目录 重新格式化并启动.经过试验,发现除了tmp,还需要将存储datanode、namenode、snn这三个文件夹里的东西清空,否则依旧报错
当utf-8的本地数据存入hdfs中,可能会乱码,但不用担心,从python中再次读取出来依旧是utf-8,不会产生问题
Mysql:
进行删除语句,发现这个错误:
经查明,解决方案如此图。
存疑:虽然mysql蹦出了error,但是数据却删除了,怀疑其实并无关系???
发生这个错误,是由于mysql的原因
可能出错问题有许多,这里我的解决方案:
是服务未启动。那么就右键‘计算机’---->管理—>服务和应用程序---->服务,在右侧的栏目中找到名称为MYSQL的服务。这个时候他的状态应该是空,即未启动,启动此服务就OK了。
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接