看完了简明教程和笨办法学python,想写爬虫,无从做起,需要继续看什么书和练习

回复内容:

说说我的经历吧

我最早是爬虾米,想看看虾米听的比较多的歌是哪些,就爬了虾米全站的歌曲播放数,做了个统计
Python爬虫学习记录(1)——Xiami全站播放数
统计过豆瓣动漫的评分分布
豆瓣2100部动漫页面的网页源码(包括评分,导演,类型,简介等信息,附抓取代码)
爬百度歌词,做LDA
Python爬虫学习记录(2)——LDA处理歌词
百度音乐带标签,作曲,演唱者,类别的歌词数据
爬足彩网站所有盘口,找赢钱算法
Python爬虫学习记录(4)——传说中的足彩倍投法。。好像也不是那么靠谱
2011~2013.5全球所有足球比赛比分数据以及足彩各公司盘口
初期不需要登录的网站比较简单,掌握http get post和urllib怎么模拟,掌握lxml、BeautifulSoup等parser库就可以了,多用firefox的firebug或者chrome的调试工具看浏览器是怎么发包的。上面都是不需要登录不需要下文件就可以做到的。

之后你可能想要下载文件(图片,音乐,视频等),这个可以试试爬虾米歌曲
Python爬虫学习记录(3)——用Python获取虾米加心歌曲,并获取MP3下载地址
爬wallbase壁纸
最近做了个avfun的视频排行,每天定时抓几次acfun,然后下载视频到服务器缓存。
Python爬虫学习记录(5)——python mongodb + 爬虫 + web.py 的acfun视频排行榜
202.120.39.152:8888

然后你可能需要模拟用户登录,爬取需要登录的网站(比如人人,新浪微博)。如果只是小规模爬虫建议用浏览器cookie模拟登录
Python爬虫学习记录(0)——Python 爬虫抓站 记录(虾米,百度,豆瓣,新浪微博)

===========================
想说的是,不要为了学而学,可以看看有什么以前觉着很麻烦的操作,是不是能用爬虫简化。爬下来的数据是不是有排序筛选分析的价值。

2015-8-31,在csdn上更新了之前失效的百度空间链接,可能有些代码因为网站的改版不适用了,这里主要还是提供一些应用的想法。看了大部分回答不禁叹口气,主要是因为看到很多大牛在回答像“如何入门爬虫”这种问题的时候,一如当年学霸讲解题目,跳步无数,然后留下一句“不就是这样推嘛”,让一众小白菜鸟一脸懵逼。。作为一个0起步(之前连python都不会),目前总算掌握基础,开始向上进阶的菜鸟,深知其中的不易,所以我会在这个回答里,尽可能全面、细节地分享给大家从0学习爬虫的各种步骤,如果对你有帮助,请点赞~

-------------------------------------------------------------------------------------------------
#我要写爬虫!
#Ver.1.2
#Based on: Python 2.7
#Author:高野良

#原创内容,转载请注明出处

首先!你要对爬虫有个明确的认识,这里引用毛主席的思想:

你是如何开始能写python爬虫?-LMLPHP
||
||
V

然后,你需要一个宏伟的目标,来让你有持续学习的动力(没有实操项目,真的很难有动力)
||
||
V

接着,你需要扪心自问一下,自己的python基本功吼不吼啊?
||
||
V

然后,你需要补充一下下面几个内容,作为你的知识储备:
(注:这里并非要求“掌握”,下面讲的两点,只需要先了解,然后通过具体项目来不断实践,直到熟练掌握)

1、网页的基本知识:

2、一些分析语言,为接下来解析网页内容做准备
||
||
V
接着,你需要一些高效的工具来辅助
(同样,这里先了解,到具体的项目的时候,再熟悉运用)
||
||
V
ok!这些你都基本有一些了解了,现在开始进入抓取时间,上各种模块吧!python的火,很大原因就是各种好用的模块,这些模块是居家旅行爬网站常备的——
||
||
V
不想重复造轮子,有没有现成的框架?
||
||
V
遇到动态页面怎么办?
||
||
V
爬来的东西怎么用?
||
||
V
然后是数据库,这里我认为开始并不需要非常深入,在需要的时候再学习即可
||
||
V
进阶技术



V1.2更新日志:
修改了一些细节和内容顺序
登录后复制
Python入门网络爬虫之精华版

Python学习网络爬虫主要分3个大的版块:抓取分析存储

另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。

首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入宁哥的小站(fireling的数据天地)专注网络爬虫、数据挖掘、机器学习方向。,你就会看到宁哥的小站首页。

简单来说这段过程发生了以下四个步骤:

  • 查找域名对应的IP地址。
  • 向IP对应的服务器发送请求。
  • 服务器响应请求,发回网页内容。
  • 浏览器解析网页内容。

网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。

抓取

这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。

1. 最基本的抓取

抓取大多数情况属于get请求,即直接从对方服务器上获取数据。

首先,Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。另外,requests也是非常有用的包,与此类似的,还有httplib2等等。

Requests:
    import requests
    response = requests.get(url)
    content = requests.get(url).content
    print "response headers:", response.headers
    print "content:", content
Urllib2:
    import urllib2
    response = urllib2.urlopen(url)
    content = urllib2.urlopen(url).read()
    print "response headers:", response.headers
    print "content:", content
Httplib2:
    import httplib2
    http = httplib2.Http()
    response_headers, content = http.request(url, 'GET')
    print "response headers:", response_headers
    print "content:", content
登录后复制
动机上:我想把学校教育系统课程信息爬下来

操作上:先了解 HTTP协议,然后学习使用 Python Requests模块,再实战。

练习上:先在终端直接操作,试着抓抓http://www.baidu.com,再把自己写的爬虫发布到PIPy…然后,把教务系统2学期2000+门课抓下来,还尝试攻击了一个小伙伴的网站…把它搞挂啦!

具体可以看这篇博客,写一个 Python 爬虫
https://jenny42.com/2015/02/write-a-spider-use-python/

突然发现我这个其实不算爬虫,顶多算抓取网页。因为我没有学 xPath 和 CSSSelect 那些东西,没有把网站爬个遍…

你会发现,尽管我的爬虫技术还很烂…但是我做的大部分尝试都是有反馈的,比如发布模块可以看到下载次数(心想着这种坑爹模块也有人下载啊),抓教务系统数据很好玩(我发现全校有250个左右的同学重名)…把小伙伴的网站搞垮再去报Bug…但我觉得这样学习很有趣。

而且我觉得我对之后学:怎么抓需要验证码的网站,怎么把网站爬个遍之类的进阶技能也很感兴趣~刚开始只是简单的看了下 Python, 简单的写些小程序,小工具之类的,感受到了它的简洁与强大。

突然就想写个爬虫试试,那就爬我最喜欢的音乐网站落网,爬了从第一期到到现在的所有音乐,包括每期的图片。还另外写了一个自动下载当前最新一期的所有歌曲的脚本。还试着用工具 PyInstaller 打包成了 exe,分享给了我几个同样喜欢落网的朋友。↓这是我爬的成果。

你是如何开始能写python爬虫?-LMLPHP
关于如何学,我只是个新手,谈不上指导,就说说我自己怎么做的吧:
  1. 首先基本的 Python 语法你要了解吧,推荐一本书《Python基础教程》,很适合入门。
  2. 其次分析你的爬虫需求。程序具体流程是怎么样的?把程序的大致框架搭起来。另外可能还有哪些难点?
  3. 然后了解一下一般写爬虫需要用哪些库,这些库可以很好的帮助你解决很多问题。推荐强悍的 Requests: HTTP for Humans 另外还有其他一些库 如 urllib2 BeautifulSoup 都可以了解下。
  4. 动手开始写了,遇到问题 Google 即可,Google 不行就上知乎问,我遇到的一个问题就是知乎私信大牛解决的。在写的过程中还会学到很多相关的知识,比如说HTTP协议, 多线程 等等。
或者你也可以直接用别人的框架,如其它人提到的 Scrapy,不用重复造轮子。网络上很多你需要重复去做的,都可以写python脚本去做。
比如知乎的一些好文章,你要保存下来,或者自动定期发送到kindle电子书
你是如何开始能写python爬虫?-LMLPHP
python爬虫 推送知乎文章到kindle电子书

你是如何开始能写python爬虫?-LMLPHP
python 暴力破解wordpress博客后台登陆密码



批量获取色影无忌图片 Python_小组(链接修复中)
用python破解某211大学BBS论坛用户密码(链接修复中)
感觉都是自己为了完成某种目的而且做得,这样动机会更加明确。 目前准备爬取股票信息,做研究使用(炒股啦)
更多 30天尝试新事情第一次想写爬虫是为了抓取草榴的高点击率视频链接。代码如下。需要翻墙。
# -- coding: utf-8 --

import urllib2
import sys
from bs4 import BeautifulSoup

reload(sys)
sys.setdefaultencoding('utf8')                          #解决写入文件乱码问题

BaseUrl = "http://t66y.com/"
j=1

for i in range(1, 100):                                 #设置始末页码
  url = "http://t66y.com/thread0806.php?fid=22&search=&page="+ str(i)  #默认str会把字符串变成unicode,所以开头必须用sys来重置
  page = urllib2.urlopen(url)
  soup = BeautifulSoup(page, from_encoding="gb18030")   #解决BeautifulSoup中文乱码问题
  print("reading page "+ str(i))
  counts = soup.find_all("td", class_="tal f10 y-style")

  for count in counts:
    if int(count.string)>15:                            #选择想要的点击率
      videoContainer = count.previous_sibling.previous_sibling.previous_sibling.previous_sibling
      video = videoContainer.find("h3")
      print("Downloading link "+ str(j))
      line1 = (video.get_text())
      line2 = BaseUrl+video.a.get('href')
      line3 = "view **" + count.string + "** "
      print line1
      f = open('cao.md', 'a')
      f.write("\n"+"###"+" "+line1+"\n"+""+"\n"+line3+ "  "+ "page"+str(i)+"\n")
      f.close()
      j+=1
登录后复制
只推薦一個库不解释:

Requests: HTTP for Humans最开始看了写Simplecd那个人的博客开始了解原来Python写爬虫这么牛逼。

然后写了脚本1W+豆瓣电影的评分页面。之后实验室有项目,写了脚本爬了50W条微博,中途熟悉如何模拟登录骗过服务器是最有趣的部分。

总结,你看看之前人的博客就行了,简单的爬虫用不到多高深的技术,无非就是几个:
1.熟悉一下urllib的使用
2.了解基本的html解析,通常来说最基本的正则就够用了不知题主的编程基础如何,基本上想写Python爬虫只需要看下前人的日志学习下urllib和BeautifulSoup就够用了。

另外如果有千人的实际例子看一下应该能比较直观的明白一个爬虫是怎么跑起来的。
在下不才,写过一个爬知乎数据的爬虫,开源于(各位亲走过路过的时候请给点个Star或Fork呗~):MorganZhang100/zhihu-spider · GitHub
该爬虫爬到的数据应用于:http://zhihuhot.sinaapp.com/

简单点说就是一个爬取问题的一些参数,进行分析,找出最可能会火的问题。据此回答问题的话,得赞速度比之前多20倍左右。

我对Python也不是很熟悉,不过一共只有几百行的代码,题主看看应该问题不大。

其实学任何东西,看得教程再多也比不上自己实习写几行代码来得有效果。只要开始写了,你就知道你需要什么了。
09-14 23:22