最近在学python,首先推荐两个网站:
http://www.runoob.com/python/python-tutorial.html (python基础知识)
http://blog.csdn.net/pleasecallmewhy/article/details/8922826 (关于爬虫博客)
如果你有语言基础,爬虫上手很快,前面基础了解后,你可以找一些感兴趣的东西爬取或者上网找一些爬虫的例子,针对例子不懂的地方进行针对学习,下面直如主题:
我爬取的是第609期女嘉宾,网站
http://tv.jstv.com/fcwr/episode/1489737583149.shtml
首先点击女嘉宾,点击检查,可以看到如下代码
<img src="http://static.jstv.com/img/2017/3/17/
20173171489738296512_18787.jpg" alt="1号女嘉宾—刘妍滟">
然后根据这个可以写出匹配的正则表达式:
reg = r'<span>.*?嘉宾—(.+?)</span>'
这个可以匹配男女嘉宾的,匹配姓名的正则表达式会在后面代码贴出。
下面贴出完整代码
#coding=utf-8
import urllib2
import urllib
import re
def getHtml(url):
response = urllib2.urlopen(url);
page = response.read();
return page;
def getImg(html):
reg = r'src="(.+?\.jpg)"';
imgre = re.compile(reg)
imglist = imgre.findall(html)
names = getNames(html)
for index in range(len(imglist)):
print imglist[index]
urllib.urlretrieve(imglist[index], '%s.jpg' % names[index].decode('utf-8'))
#<span>2号女嘉宾—许维君</span>
#<span>第609期5号男嘉宾—翟旭龙</span>
def getNames(html):
reg = r'<span>.*?嘉宾—(.+?)</span>'
namereg = re.compile(reg)
names = namereg.findall(html)
for name in names:
print name
return names
html = getHtml("http://tv.jstv.com/fcwr/episode/1489737583149.shtml");
getImg(html)
有什么问题和想法欢迎与我联系,大家多多沟通,互相学习,如果觉得不错,也欢迎点赞,你的肯定是我努力和坚持的动力。
网友评论