之前看过用Scrapy 框架建立项目爬取 网页解析时候用的Xpath进行解析的网页元素 这次尝试用select方法匹配元素
1、入口爬取页面 http://www.ygdy8.com/index.html
2、用到模块 requests(网页源码下载) BeautifulSoup4(网页解析)
3、思路:首先由入口爬取页面进行获取网页上方栏目及对应url 如下图
4、建立菜单url列表 for 循环再次进行解析 爬取每个一级菜单下的具体电影title 和url
5、问题:每个菜单下的url 进行再次解析后 由于网站内容不同 select 元素会出现非电影标题的连接和标题
6、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.textsoup = bs(html, 'html.parser')print "正在解析第"+str(i+1)+"个链接",cate_urls[i]contenturls=[]contents=soup.select('.co_content8 ul')[0].select('a')#print contentsfor title in contents:moivetitle=title.textmoiveurl=title['href']contenturls.append(moiveurl)print moivetitle,moiveurl
print contenturls
8、运行结果