您的位置:首页 > 编程语言

第六周编程任务学习过程

2014-12-04 16:54 127 查看
#有好几张图片插入失败了,重新插入会和正文内容不符合。索性就不添加图片了。

#还是把图片加上去好了。。。

#增加一个可能出现的错误6

a. 深入学习Github的使用:从Github上搜索并学习2~3个优秀的爬虫源代码,学习其编程风格和技巧;

b. 以重要经济参数为例,进一步巩固爬虫和数据库使用技巧:完成对国际现货与期货石油价格、美元人民币汇率、美元指数等数据的实时监控,采样频率为一小时一次,相关数据的采样页面需要自己搜索。

这次的代码任务只能说是前几周学习成果的一个小复习题。没有太大的难度,但是没有熟悉各种模板的函数运用,仍然会出现失误:

在向网页发送表单的时候要使用正确的请求方法。虽然POST与GET方法都提供了到网页采集数据的可行性,但如果错误的使用它们,将不会得到任何结果。而避免的方法很简单:只要在编写代码之前多看一眼,便不会如此这样南辕北辙。


利用正则表达式来获取特定位置的信息时要注意用转义符取消元字符(例如[ ] . 等等)的特殊含义,负责会引发异常。




我想获取

  中的67.73这个数据,如果我用

这样的正则表达式,获得的结果却是
-0.54 。原因是像 *,+ 这样地重复是“贪婪的”,当重复一个 RE 时,匹配引擎会试着重复尽可能多的次数。如果模式的后面部分没有被匹配,匹配引擎将退回并再次尝试更小的重复。而在重复后加?的非贪婪模式,将匹配最小适合字符串。因此定位的获得数据,可以使用

这样的语句,准确的获得数据。
 tuple_spot = re.findall(reg_spot,page_spot)返回的是一个tuple,里面保存的是多个字符串对象,因此想要取出一个浮点型的数字,需要进行类型转换。




向数据库中插入字符串是要注意在sql语句中字符型都需要用‘’括起来。同时在游标执行excute()方法后需要connect对象的commit()方法完成写入操作,如果出现了没有插入数据的情况,可能就是缺少了commit()方法。


当写入数据库的间隔时间过长的时候,可能会和数据库断开链接,可以通过两种办法解决,一是在执行程序前先将全局变量wait_timeout的值改成一个足够大的数。二是这样:




具体的代码我会更新在github上。github地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python