2019-01-14Selenium

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

置顶 2017年09月12日 17:32:40 Gavinsun 阅读数:1109

 版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/gavinsun/article/details/77947751

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

#coding:utf-8fromselenium import webdriverimport codecsdriver = 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')formovieinmovies: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:        continuef.close()driver.quit()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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

# coding:utf-8fromseleniumimportwebdriverimportcodecsdriver = 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')whileTrue:printu"开始下载", driver.current_urlprintu"当前共打开{total_tab}个标签页。".format(total_tab=len(driver.window_handles))    movies = driver.find_elements_by_xpath('//*/li/h3/a')# 遍历每部电影,并把电影的名字和对应的迅雷链接写入文件中。formovieinmovies:        f.write(movie.text)# 输出电影的名字printmovie.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")exceptException, e:printu"获得电影链接失败。"printdriver.current_urlfinally:            driver.close()            driver.switch_to.window(window_name=cur_window)# 找下一页,如果找不到,breaktry:        next_page = driver.find_element_by_link_text("下一页")exceptException, e:printu"没有找到下一页"printdriver.current_urlbreaknext_page.click()f.close()driver.quit()

你可能感兴趣的:(2019-01-14Selenium)