标签:decode 爬取 color sources port get str 技术 ref
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
标签:decode 爬取 color sources port get str 技术 ref
原文地址:http://www.cnblogs.com/Mr-Cxy/p/6143029.html