Coder Social home page Coder Social logo

spyderofhuangdaohouse's Introduction

第三周周五 2017年3月10日16:33:02

进度:完成从链家二手房网站爬取二手房数据数据,并且写入到MySQL数据库。

问题

  • 遇到链家网的反爬虫机制,我的IP频繁访问后,要访问的网页会重定向到一个验证网站,无法继续爬取数据。
  • 某些房子(如别墅)的具体信息界面与普通的房子不同,导致某些字段爬取的数据出错。例如装修字段爬取到供暖信息。
  • 在爬取链家二手房网站第一个界面指向的具体房屋信息界面时(大约是30个界面), 每次都会有一两个网页提取不到信息,不知道为什么?可能与反爬虫机制有关。

学到的知识

  • 较为复杂的变量名最好还是复制粘贴,或者选择IDE的自动提示,否则容易敲错。
  • 尤其是对于SQL语句中的变量名,因为是字符串中的内容,没有提示,容易写错;往往SQL都很长,可能会有遗漏。
  • 使用logging模块,打印日志,输出程序运行信息。
  • scrapy框架自带的log模块失效了。
  • get_text()函数可以提取当前标签所有文字内容,包括子标签。
  • 可以用content函数只获取当前标签的内容。

接下来要学习的内容。

  • 学习异常处理
  • 学习Python中的参数,生成器,迭代器。

第四周周六 2017年3月18日19:57:36

进度:为链家二手房爬虫设置download_delay,禁用cookies,设置user_agent。爬取数量从500+升至将近1000。但是爬虫仍然会被链家网封。

问题:

  • 设置代理IP以及Tor+polipo,但是一直提示Connection was refused by other side: 10061: 由于目标计算机积极拒绝,无法连接。. 不明白为什么??困扰了将近一天时间。

学到的知识

  • 学习了部分javascript的基础知识
  • 学习使用结巴分词(jieba module),对中文文本分词,并且统计词频。
  • 学会了基本的反爬措施(设置download_delay,禁用cookies,设置user_agent)。这几个措施很简单,以后每个爬虫都要设置这几项措施。
  • 学习使用了re模块的几个函数。
  • 学会python读写函数的编码方式(对中文默认是GBK格式),在处理utf-8格式的中文时,要加上encoding='utf-8'

接下来要学习的内容。

  • 完成代理IP(或者是TOR+polipo),实现爬取链家网不会被封。
  • 对爬取的数据进行分析。利用python的数学分析,图表之类的模块。
  • 学习javascript。开始接触百度地图API。
  • 继续学习结巴分词。并且生成词云。

感想

  • 在这一周内,我的主要任务是完善代码,防止被封,但是我一直拖延这项最主要的任务,反而是把时间,精力用在了其他的方面。直到昨天才开始去做, 本周总共只学了两天时间。希望从下一周开始每天先做最主要的几件事事情,做完之后,剩下的时间在用来玩其他的东西。先把最主要的事情做完了,你的 这一天才没有白费。
  • 觉得现在很多的博客实在是太操蛋了,为什么要全篇的照搬别人的博客呢???就一篇文章,来来回回出现在五六个网站上,真是无语了。浪费了太多的时间。

第五周周二 2017年3月21日09:33:39

进度:借助阿布云购买的代理通道,实现爬取链家网站不会被封。

学到的知识:

  • 从阿布云购买代理通道,防止爬虫被封。

接下来要学习的内容:

  • 学习使用百度地图API,学习百度热力图。
  • 学习PHP,搭建网站。
  • 开发微信公众号。
  • 回顾python的基础知识

第六周周一 2017年3月27日16:45:23

进度:完成链家二手房,安居客二手房,安居客新房爬虫。

学到的知识:

  • 搭建好了自己的个人博客(仅搭建,就写了几篇测试博客)
  • 开通了自己的微信公众号(仅开通,什么也没有做)
  • 积累了关于xpath and Beautifulsoup的一些小知识
    • 注意:BS中匹配class属性是用class_="XXX",我却写成了_class="XXX"。导致一些数据返回为空。最终选择用xpath解析网页,浪费了太多的时间。
    • 在xpath中有text()[2]这种用法。用来获取例如Hello你好WorldWorld的值。
    • 在xpath中是用string(.)来获取当前标签以及子标签的值(仅仅是子标签,不包括孙标签)
  • 分清楚字符串比较中is and == 的区别。
  • 分清楚join(),split(),strip()等函数的作用。
  • "".join(str.split())去除字符串前后以及内部的所有空白符。
  • control+shift+R 全局替换

接下来要学习的内容:

  • 完成第一篇博客,并且推送到个人博客,简书,微信公众号。
  • 二手房,新房爬虫告一段落,接下来写小区爬虫,并且思考如何获取历史数据。
  • 学习javascript,学习百度地图api。
  • 学习一些python数据分析的库
  • 最好是练习盲打,这样效率比较高,而且写代码很舒服。

感想:

  • 第五周完成的内容实在是少,为什么??付费的代理通道成为了一种束缚,写代码的时候总让我有所顾忌,不能放开手脚。总是想着写完所有代码再去开 代理通道验证,殊不知很多事经过验证会少走很多的弯路,节省很多的时间。在本次验证安居客二手房爬虫的时侯,我几乎是重新写了一遍。付费的代理通 道是很好用,但是我还是希望能够获得别的免费方法。不过一小时也就只有2元钱,我为什么舍不得,平时喝瓶可乐都是3块钱
  • 花费了太多的时间去折腾其他的东西,但是我认为很值,期间学到了,知道了很多的东西。但是自己的效率真的很低,这是一个毛病。
  • 还是要先去完成主要的任务,再去折腾其他的事。

spyderofhuangdaohouse's People

Contributors

thereislight avatar

Stargazers

Viserion avatar nguyendoanh99 avatar Berry Zaren avatar 夜下凝月 avatar walker hu avatar Wang Renzhi(Shanicky) avatar chent1024 avatar  avatar

Watchers

James Cloos avatar  avatar walker hu avatar Viserion avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.