Python自动化(一)使用Selenium+PhantomJS爬取电影下载链接

采集第一页中所有电影的名称和迅雷链接


#coding:utf-8
from selenium import webdriver
import codecs

driver = webdriver.PhantomJS()
driver.get("http://www.poxiao.com/mtype5.html")
movies = driver.find_elements_by_xpath('//*/li/h3/a')
cur_window = driver.current_window_handle #记录当前浏览器标签

#遍历每部电影,并把电影的名字和对应的迅雷链接写入文件中。
f = codecs.open("movies.csv",'w',encoding='utf-8')
for movie in movies:
    try:
        f.write(movie.text)#输出电影的名字
        f.write(',')
        movie.click()  #点击电影,进入电影详情页面
        #在详情页中找到迅雷链接
        total_tab = driver.window_handles  #获得当前浏览器打开的所有标签
        driver.switch_to.window(window_name=total_tab[1]) #转到详情页
        thunder_link = driver.find_element_by_xpath('.//*/td[@class="sebc3"]/a')
        f.write(thunder_link.get_attribute('href'))
        driver.close()
        driver.switch_to.window(window_name=cur_window)
        f.write("\n")
    except Exception,e:
        continue

f.close()
driver.quit()

采集科幻片分类下的所有电影的名称和对应的迅雷链接。

# coding:utf-8
from selenium import webdriver
import codecs

driver = webdriver.PhantomJS()
driver.get("http://www.poxiao.com/mtype5.html")
cur_window = driver.current_window_handle  # 记录当前浏览器标签
f = codecs.open("movies.csv", 'w', encoding='utf-8')

while True:
    print u"开始下载", driver.current_url
    print u"当前共打开{total_tab}个标签页。".format(total_tab=len(driver.window_handles))
    movies = driver.find_elements_by_xpath('//*/li/h3/a')

    # 遍历每部电影,并把电影的名字和对应的迅雷链接写入文件中。

    for movie in movies:
        f.write(movie.text)  # 输出电影的名字
        print movie.text
        f.write(',')
        movie.click()  # 点击电影,进入电影详情页面
        # 在详情页中找到迅雷链接
        total_tab = driver.window_handles  # 获得当前浏览器打开的所有标签
        driver.switch_to.window(window_name=total_tab[1])  # 转到详情页
        try:
            thunder_link = driver.find_element_by_xpath(
                './/*/td[@class="sebc3"]/a')
            f.write(thunder_link.get_attribute('href'))
            f.write("\n")
        except Exception, e:
            print u"获得电影链接失败。"
            print driver.current_url
        finally:
            driver.close()
            driver.switch_to.window(window_name=cur_window)

    # 找下一页,如果找不到,break
    try:
        next_page = driver.find_element_by_link_text("下一页")

    except Exception, e:
        print u"没有找到下一页"
        print driver.current_url
        break
    next_page.click()

f.close()
driver.quit()
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值