python 下用到的库,urllib, urllib2, BeautifulSoup, cookielib, mechanize, re
看Firebug模拟浏览器行为。
1. 虾米
虾米不用登陆,没有IP限制,最简单。Python抓了下Xiami电台的试听数 里用的是
import urllib2
content = urllib2.urlopen('http://www.xiami.com/artist/top/id/1234').read()
每个歌手爬个两三页。把试听数10000以上的歌记下来。歌手id大概有11w。
处理网页用split, 正则表达式re.compile, BeautifulSoup都成。
( Beautiful Soup的中文文档 http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html )
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(content)
就能对soup操作了,支持正则表达式,譬如
soup.find('p', align=re.compile('^b.*'))['id']可以从 <p id="secondpara" align="blah"> 中抓出 secondpara, 可以通过这个抓到a href=""中间的url
soup.find("b", { "class" : "lime" })可以抓到 <b class="lime">Lime</b>
soup.find("b", { "class" : "lime" }).string 可以提取到<>与</>中间的内容 Lime。
2. 百度
如果想在空间里取米粒之类的操作就要登陆,