1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

使用selenium调用火狐浏览器爬取网页文本及链接

作者:用户 来源:互联网 时间:2018-08-01 20:19:52

爬虫ubuntuseleniumfirefox

使用selenium调用火狐浏览器爬取网页文本及链接 - 摘要: 本文讲的是使用selenium调用火狐浏览器爬取网页文本及链接, 时间:2017年8月6号晚上3点40分    ,   失眠了,闲来无事写个随笔吧。 几天前朋友问我能不能帮他爬取一个网址的文本及链接,想自己整理一便以方便学习,网址:http://www.bianceng.cn

时间:2017年8月6号晚上3点40分    ,   失眠了,闲来无事写个随笔吧。使用selenium调用火狐浏览器爬取网页文本及链接

几天前朋友问我能不能帮他爬取一个网址的文本及链接,想自己整理一便以方便学习,网址:http://www.bianceng.cn/Programming/cplus/

需求:将网页内的文本内容及对应超链接保存到本地,总共60页,1773条

考虑到网页中第一页的url为:http://www.bianceng.cn/Programming/cplus/      ;   第2至60页的url为:url = 'http://www.bianceng.cn/Programming/cplus/index'+ str(page_number)+'.htm'   需要爬取内容简单,网页url规律性强,直接暴力搞定使用selenium调用火狐浏览器爬取网页文本及链接


思路:1.使用selenium调用火狐浏览器加载网页,第一页直接加载,第2-60页for循环生成网页 url

            2.浏览该网页源码你会发现,所有的文章都在 li 标签中,第一步:定位到 li 标签找出该页所有的包含文章及链接的部分 html 代码

            3.for循环在第二步得到的items 找出每个文章的 text 文本 及 herf   加载事先定义好的容器 list 中

            4.将list转化为DataFrame格式直接诶写到本地,有点懒,怎么快怎么来吧使用selenium调用火狐浏览器爬取网页文本及链接

废话不多说直接上代码吧:

python">#!/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
import time
import pandas as pd
'''
2-60页代码基本跟第一页处理一样,不加注释了
'''
path = '/home/ycxu/下载/geckodriver'

browser = webdriver.Firefox(executable_path=path)    
browser.set_page_load_timeout(30)
l = []  #存储功能
'''
加载第一页内容
'''
browser.get('http://www.bianceng.cn/Programming/cplus/')
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
#定位到 li 标签
page_texts_one = browser.find_element_by_css_selector('html body.articlelist div.w960.center.clear.mt1 div.list_pleft div.listbox ul.e3').find_elements_by_tag_name('li')
print '第一页内容:'
for i in page_texts_one:
  print i.find_elements_by_tag_name('a')[0].get_attribute('text') ,i.find_elements_by_tag_name('a')[0].get_attribute('href')
  #将文章内容及链接存储到list容器中
  l.append([i.find_elements_by_tag_name('a')[0].get_attribute('text') ,i.find_elements_by_tag_name('a')[0].get_attribute('href')])  



'''
加载2到60页
'''
for page in xrange(2,61):
  url = 'http://www.bianceng.cn/Programming/cplus/index'+ str(page)+'.htm'
  browser.get(url)
  browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  time.sleep(3)   # 不然会load不完整
  page_texts_two = browser.find_element_by_css_selector('html body.articlelist div.w960.center.clear.mt1 div.list_pleft div.listbox ul.e3').find_elements_by_tag_name('li')
  print '第%d页内容:' % page
  for i in page_texts_two:
    print i.find_elements_by_tag_name('a')[0].get_attribute('text') ,i.find_elements_by_tag_name('a')[0].get_attribute('href')
    l.append([i.find_elements_by_tag_name('a')[0].get_attribute('text') ,i.find_elements_by_tag_name('a')[0].get_attribute('href')])
#将list容器转换为DataFrame格式,一句话即可保存到本地,对懒人来说是个不错的处理方法
h = pd.DataFrame(l)
h.to_csv('/home/ycxu/桌面/page_info.csv',encoding = 'utf-8')
h.to_csv('/home/ycxu/桌面/page_info.txt',encoding = 'utf-8')


           


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有 的相关内容,欢迎继续使用右上角搜索按钮进行搜索爬虫 , ubuntu , selenium firefox ,以便于您获取更多的相关知识。

火狐浏览器-python+selenium无法用firefox加载网页

问题描述 python+selenium无法用firefox加载网页 最近在学习selenium遇到的这个问题,只能打开firefox,之后就没法加载url,公司的电脑我试下是可以的,网上搜了很多资料也没有解决,很纠结,请...

Python爬取淘宝模特图片网络爬虫示例

...的概念可以自行百度。简而言之,PhantomJS是一个无界面的浏览器,而selenium是一个测试浏览器的工具,结合这2者,我们就可以解析动态的页面了。         获取模特的个性域名的代码如下: 复制代码  1 def getUrls(url):  2     ...

[WAMP网站开发] PHP实现select新闻查询及超链接详情跳转

...的博客信息数据库作为新闻信息。爬虫参考:[python爬虫] Selenium爬取内容并存储至MySQL数据库 然后点击每一条新闻,去到详情页面并显示。比如:点击最后一条新闻,“2016年总结:教师路的开启,爱情味 的 初尝”。 核心考点:...

网页搜集系统

...这海量的网页中搜索下载具有对特定场景有价值的网页。使用什么样的策略能保证网页不会出现重复。如何保证爬虫程序的高并发爬取。如何在网页中提取关键点等等问题,这是本篇博客重点描述的内容。 1.1万维网结构分析 把...

scrapy爬取动态分页内容

...出现爬到空页面的情况。 处理方法: 1)scrapy+selenium模拟浏览器点击:通过模拟浏览器点击的方式进行翻页,从而获取每一页内部的有效链接。 2)使用WebDriverWait()等待数据加载:即确保对应内容加载完成后,再进行相应爬取任...

前三篇
后三篇