初学Python爬虫有感
前言
之前听同学说过这个爬虫,但是咱也不懂啊,插不上话,都被他装完了,所以这次暑假一时兴起就b站自学了一下,算是抛弃了一部分学算法的时间,开学打比赛就要哭了
一、准备开发环境
下载软件pycharm,python,配置python环境,这个倒挺简单
二、爬虫框架
1.引入库
代码如下(示例):
import bs4 #网页解析,获取数据
import re #正则表达式,进行文字匹配
import urllib.request,urllib.error #制定URL,获取网页数据
import xlwt #进行excel操作
import sqlite3 #进行sqlite数据库操作
2.获取网页
先找到我们想要的网页,按F12查看网页代码,点击Network,再刷新网页,点第一个绿色条状物,查看我们的用户代理信息"User-Agent",为我们模拟浏览器访问做好准备,head里面不止"User-Agent"还有很多信息,不嫌麻烦都可以加
然后我们就可以模拟浏览器进入网页咯,我们就可以得到一个response,这个就是我们需要的网页url内容
3.解析网页
用bs4对我们获取到的url进行html.parser解码,这时你会得到一个html网页源码,里面就包含我们需要的内容,我们要把它提取出来
4.获取数据
用re.compile指定查找标准,查找我们所需要的内容,这其中需要用到正则表达式,那些符号有点多,有点复杂,不过掌握好了对我们查找特别有帮助
5.保存数据
这里保存数据有两种方式,一种是通过excel表保存,一种是通过数据库保存,个人感觉excel表是比较简单的,存储起来有点像二维数组,数据库存储则需要你掌握一些数据库知识,虽然数据库上学期刚学,但我已经还给老师了,不知道这学费能不能退
三、遇到的bug总结
问题1
TypeError: can only concatenate str (not “list”) to str
类型错误:只能连接str(不是“列表”)到str
debug操作:str()类型转换
问题2
TypeError: sequence item 0: expected str instance, list found
这是因为list中包含数字,不能直接转换成字符串
修改后:
insert into StockX(shoename,price)
values(%s)'''%','.join('%s'%price for price in data)
问题3
在保存数据到数据库测试过程中,打印sql语句,insert into出现了 [ 、 ] 的符号,就是列表的符号还在,果断用replace处理,成功解决,但是应该有更好的办法,可是我不会,求大佬指点orz
问题4
TypeError: ‘str’ object cannot be interpreted as an integer
这个错误我不知道为什么会报,找半天原来是我replace语法用错了,用成了re.sub的语法,不得不说功能有点像,语法就搞混了
还有一些问题解决后忘记了,以后遇到问题一定要学会记录问题
四、爬取成果
因为我比较喜欢球鞋,所以这次就写了一个爬虫去爬取Stock X上的球鞋名字和价格,简简单单大佬勿喷orz
Python运行起来速度好慢,然后等半天又告诉你出现错误,又得重新调试,唉,体验有点差