抓取目标
阳光电影网导航栏国内电影资源抓取:电影名称和下载资源的抓取
页面观察
点击导航栏的国内电影会跳转到国内电影下载页面,其页面下部有下一页,依次点击2、3..页,其 url 变化为
http://www.ygdy8.com/html/gndy/china/list_4_2.html
http://www.ygdy8.com/html/gndy/china/list_4_3.html
http://www.ygdy8.com/html/gndy/china/list_4_4.html
.........
在电影下载页点击电影名称会跳转到电影详情页,也是电影的真正下载地址的所在地,正是所需抓取的内容。
大体思路
在国内电影下载页面获取其对应电影的跳转页面 url (也就是详情页面的url),解析内容,获取其下载地址,保存数据。
编写代码
import requests
from lxml import etree
def get_moive_url(url):
'''
获取电影列表页内容
并解析出电影的名称
和电影详情页的 url
'''
result = requests.get(url)
result.encoding = 'gb2312'
selector = etree.HTML(result.text)
infos = selector.xpath('//table[@class="tbspan"]//a[2][@class="ulink"]')
for info in infos:
movie_url = 'http://www.ygdy8.com' + info.xpath('@href')[0]
movie_name = info.xpath('text()')[0]
get_movie_source(movie_url,movie_name)
def get_movie_source(movie_url,movie_name):
'''
获取电影详情页内容
并解析出下载的地址
'''
new_result = requests.get(movie_url)
new_result.encoding = 'gb2312'
new_selector = etree.HTML(new_result.text)
new_inofs = new_selector.xpath('//td[@style="WORD-WRAP: break-word"]/a')
for info2 in new_inofs:
source_url = info2.xpath('@href')[0]
source_text = info2.xpath('text()')[0]
print("电影名称:%s 下载链接:%s" % (movie_name, source_url))
if __name__=='__main__':
base_url = 'http://www.ygdy8.com/html/gndy/china/list_4_%s.html'
for page in range(1,8):
url = base_url % str(page)
print(url)
get_moive_url(url)
运行结果

网友评论