1、昨天文章http://www.cnblogs.com/Mr-Cxy/p/6139705.html 是获取电影网站主菜单 然后获取每个菜单下的电影url
2、今天是对电影url 进行再次解析获取下载地址 并写入文件 调用函数和类多线程还没实现 一步步来吧
3、问题:我想实现的是先对菜单进行创建文件目录 然后每个目录下以获取的电影名称.txt 作为文件 文件内是下载连接,但是创建一级菜单文件夹没问题 用OS模块就可以创建 在写入电影名称.txt时候出问题 报错

我以为是编码问题 f.open(目录名+电影名.txt,"a") 前面是字符型也用到decode=‘utf-8‘ 转换了 还是报错
无奈我只好先以追加模式 写入一个固定的文本txt文件 明天再看看

4、python 代码
#coding:utf-8
import requests
from bs4 import BeautifulSoup as bs
#爬取入口
rooturl="http://www.ygdy8.com/index.html"
#获取网页源码
res=requests.get(rooturl)
#网站编码gb2312
res.encoding=‘gb2312‘
#网页源码
html=res.text
soup=bs(html,‘html.parser‘)
cate_urls = []
for cateurl in soup.select(‘.contain ul li a‘):
#网站分类标题
cate_name=cateurl.text.encode(‘utf-8‘)
#分类url 进行再次爬取
cate_url="http://www.ygdy8.com/"+ cateurl[‘href‘]
cate_urls.append(cate_url)
print "网站一级菜单:",cate_name,"菜单网址:",cate_url
# newdir = "E:/moive24/"+ cate_name
# os.makedirs(newdir.decode("utf-8"))
# print "创建分类目录成功------" + newdir
#每个菜单url 解析
for i in range(len(cate_urls)):
cate_listurl=cate_urls[i]
res = requests.get(cate_listurl)
res.encoding = ‘gb2312‘
html = res.text
soup = bs(html, ‘html.parser‘)
print "正在解析第"+str(i+1)+"个链接",cate_urls[i]
contenturls=[]
contents=soup.select(‘.co_content8 ul‘)[0].select(‘a‘)
#print contents
for title in contents:
moivetitle=title.text.encode(‘utf-8‘)
moiveurl="http://www.ygdy8.com/"+ title[‘href‘]
contenturls.append(moiveurl)
print moivetitle,moiveurl
# file_name=newdir +‘/‘+ moivetitle +‘.txt‘
# print file_name
# f = open(file_name.decode("utf-8"), "wb")
# f.close()
res = requests.get(moiveurl)
res.encoding = ‘gb2312‘
html = res.text
soup = bs(html, ‘html.parser‘)
moive_sources=soup.select(‘#Zoom span tbody tr td a‘)
for source in moive_sources:
moive_source=source[‘href‘]
#print moive_source
f=open(‘E:/moive24/moive.txt‘,‘a‘)
f.write(moive_source.encode("utf-8") + "\n")
f.close
Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207
原文:http://www.cnblogs.com/Mr-Cxy/p/6143029.html