使用selenium爬虫豆瓣电影信息

Posted xuehaiwuya0000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用selenium爬虫豆瓣电影信息相关的知识,希望对你有一定的参考价值。

目前问题:
1.爬虫爬到十七条数据后,就不进行了,处于等待状态,咱不知道问题所在
2.采用selenium爬虫,由于涉及到页面加载,十分缓慢,个人倾向于ajax技术。



#
from bs4 import BeautifulSoup import re, csv, urllib.request, urllib.parse, time, json, pickle,random from selenium import webdriver from selenium.webdriver.common.keys import Keys class managerurl(object): def __init__(self): self.oldurls=set() self.newurls=set() def add_newurls(self,urls): if urls: for i in urls: self.add_newurl(i) def add_newurl(self,url): if url not in self.newurls and url not in self.oldurls: self.newurls.add(url) def has_newurls(self): url=self.newurls.pop() self.oldurls.add(url) return url class data_get(object): def __init__(self): self.manaurl=managerurl() def data_gain(self,url): data = [] num=0 self.manaurl.add_newurl(url) while 1: if len(self.manaurl.newurls): driver = webdriver.Firefox() url1=self.manaurl.has_newurls() driver.get(url1) print(num) #time.sleep(random.randrange(5,10)) moviescore = driver.find_element_by_xpath("//strong[@class=‘ll rating_num‘]") # 获得电影的评分数据 othermovies = driver.find_elements_by_xpath("/html/body/div[3]/div[1]/div[2]/div[1]/div[7]/div/dl/dd/a") # 获取同类电影的数据 moviename=driver.find_element_by_xpath(/html/body/div[3]/div[1]/h1) print(moviename.text) for i in othermovies: self.manaurl.add_newurl(i.get_attribute(href)) data.append({moviename: moviename.text, score: moviescore.text}) num+=1 driver.close() if num>100: print(data) break if __name__=="__main__": b=data_get() url=https://movie.douban.com/subject/27663742/ b.data_gain(url)

 

以上是关于使用selenium爬虫豆瓣电影信息的主要内容,如果未能解决你的问题,请参考以下文章

python豆瓣电影爬虫

爬虫练手项目:获取豆瓣评分最高的电影并下载

python爬虫入门爬取豆瓣电影top250

Python从0开始写爬虫——豆瓣电影

利用selenium爬取豆瓣电影Top250

Python爬虫编程思想(87):项目实战--抓取豆瓣电影排行榜