爬虫相关:selenium+phantomjs+lxml练手小程序

当爬取动态页面(很多数据通过js获取的)的时候,如果仅想使用原生态的urllib,requests或者scrapy等技术,就无能为力了,此时需要借助于渲染js的方法。这种情况下,有一个比较好用的工具组合,那就是selenium与phantomjs的组合。

以下程序权当练手且防止遗忘,以供以后参考。

注意点:程序末尾一定要关闭phantomjs,否则它会一直运行,占用大量内存。

片段1

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
from lxml import etree

driver = webdriver.PhantomJS(executable_path="phantomjs")
print "0"
driver.get("http://isplus.live.joins.com/photo/isplusgallery/isplus_photoslide.asp?gid=656")
# driver.get("http://www.baidu.com")
# driver.get("http://www.csdn.net")
# print driver.page_source

photo_pics = driver.find_elements_by_xpath("//span[@class='photo']/a/img")
# photos = driver.find_elements_by_tag_name()
# title = driver.title
# driver.save_screenshot("isplus.png")
# print title
print len(photo_pics)
# for photo in photo_pics:
#     print photo.get_attribute("src")
print "------------------"
# driver.execute_script("load_isplusgallery_film('next')")
# photo_pics = driver.find_elements_by_xpath("//span[@class='photo']/a/img")
# print len(photo_pics)
# for photo in photo_pics:
#     print photo.get_attribute("src")
#
channel = driver.find_element_by_xpath("//div[@id='gnb_isplus']/ul/li[@class='on']/a").text
print "channel:",channel

img = driver.find_element_by_xpath("//span[@id='img_area']/strong/em/img")
print img.get_attribute("src")

img_desc_span = driver.find_element_by_xpath("//div[@class='slideview slideview_v3']/div[@id='isplus_slide_bd']/span[@id='img_area']/a[@class='txt']")
# img_desc = driver.find_element_by_xpath("//span[@id='img_area']/a[@class='txt']").text
# print "图片描述:" + str(img_desc)
print isinstance(img_desc_span, WebElement)
print type(img_desc_span)
print img_desc_span.tag_name
print img_desc_span.text

# for i in range(1,100):
#     # driver.execute_script("getArticleContent('" + str(i + 1) + "')")
#     driver.find_element_by_id("btn_next").click()
#     img = driver.find_element_by_xpath("//span[@id='img_area']/strong/em/img")
#     print img.get_attribute("src")

pic_num = int(driver.find_element_by_id("subject_allcnt").text)
print pic_num

driver.quit()
print "3"

片段2

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
from lxml import etree

driver = webdriver.PhantomJS(executable_path="phantomjs")
driver.get("http://isplus.live.joins.com/photo/isplusgallery/isplus_photoslide.asp?gid=665")
# driver.get("http://www.baidu.com")
# driver.get("http://www.csdn.net")
html = driver.page_source

html = etree.HTML(html.encode("utf-8"))
print type(html)

# photos_src = html.xpath("//span[@class='photo']/a/img/@src")
# print photos_src
#
# pic_desc = html.xpath("//div[@class='slideview slideview_v3']/div[@id='isplus_slide_bd']/span[@id='img_area']/a[@class='txt']/text()")
# print pic_desc[0].encode("utf-8")

# 正文图片url(大图url)
pictureUrl = []
# 图集图片url(缩略图url)
slidePictureUrl = []
# 图集图片描述
slidePictureDesc = []

imgUrls = html.xpath("//span[@id='img_area']/strong/em/img/@src")
for imgUrl in imgUrls:
    slide_img = imgUrl + ".tn_120.jpg"
    slidePictureUrl.append(slide_img)
img_desc = html.xpath("//div[@class='slideview slideview_v3']/div[@id='isplus_slide_bd']/span[@id='img_area']/a[@class='txt']/text()")
slidePictureDesc.append(img_desc)
print slidePictureDesc

pictureUrl.append(imgUrl)
driver.quit()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容