Python 2.7_First_try_爬取阳光电影网_20161206
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129
Python 2.7_爬取CSDN单页面利用正则提取博客文章及url_20170113
python3 requests + BeautifulSoup 爬取阳光网投诉贴详情实例代码