首页 > 代码库 > Python 2.7_First_try_爬取阳光电影网_20161206
Python 2.7_First_try_爬取阳光电影网_20161206
之前看过用Scrapy 框架建立项目爬取 网页解析时候用的Xpath进行解析的网页元素 这次尝试用select方法匹配元素
1、入口爬取页面 http://www.ygdy8.com/index.html
2、用到模块 requests(网页源码下载) BeautifulSoup4(网页解析)
3、思路:首先由入口爬取页面进行获取网页上方栏目及对应url 如下图
4、建立菜单url列表 for 循环再次进行解析 爬取每个一级菜单下的具体电影title 和url
5、问题:每个菜单下的url 进行再次解析后 由于网站内容不同 select 元素会出现非电影标题的连接和标题
6、下一步处理:考虑建类和函数 运用递归循环获取url 并解析
①电影的url 再次进行解析 获取电影下载连接 并写入本地文件
②将5步骤中出现的非电影标题进行判断 删除
7、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 #分类url 进行再次爬取 cate_url="http://www.ygdy8.com/"+ cateurl[‘href‘] cate_urls.append(cate_url) print "网站一级菜单:",cate_name,"菜单网址:",cate_url #每个菜单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 moiveurl=title[‘href‘] contenturls.append(moiveurl) print moivetitle,moiveurl print contenturls
8、运行结果
Python 2.7_First_try_爬取阳光电影网_20161206
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。