Python爬虫爬取qq视频等动态网页全代码
环境:py3.4.4 32位
需要插件:selenium BeautifulSoup xlwt
# coding = utf-8
from selenium import webdriver
from bs4 import BeautifulSoup
import time
import re #re模块提供正则表达式支持
import xlwt
url = 'http://v.qq.com/vplus/huilanyujia/videos'
tudou = webdriver.Firefox()
tudou.get(url)
#创建workbook和sheet对象
workbook = xlwt.Workbook() #注意Workbook的开头W要大写
sheet1 = workbook.add_sheet('优酷',cell_overwrite_ok=True)
count1 = count2 = 3
sheet1.write(0,0,'由于bug,暂时!!最后一页数据需要自己手动统计')
sheet1.write(1,0,'如有技术问题,请联系陈鼎,微信chending2012')
#开始写入文件
for num in range(2,22):
pageNum='pager_num_0_'+str(num)
tudou.find_element_by_id(pageNum).click()
i = tudou.page_source#获取读取到的网页资源
soup = BeautifulSoup(i,"html.parser")
i1 = soup.find_all("strong",class_="figure_title figure_title_two_row")
i2 = soup.find_all("span",class_="info_inner")
#以上通过beautifulsoup 做一个初略的筛选
for each in i1:
p =r'(target="_blank">)(.+)(</a>)'
play_name =re.search(p,str(each)).group(2)
sheet1.write(count1,0,play_name)
count1 += 1
for each in i2:
play_num = ''
p = re.compile(r'\d+\.?万?')
play_num0 = p.findall(str(each))
for each1 in play_num0:
play_num +=str(each1)
sheet1.write(count2,1,play_num)
count2 += 1
time.sleep(2)
#最后一页 ,因为最后一页的元素地址有点不一样,所以特地写一篇
pageNum = 'pager_last_0'
tudou.find_element_by_id(pageNum).click()
i = tudou.page_source#获取读取到的网页资源
soup = BeautifulSoup(i,"html.parser")
i1 = soup.find_all("strong",class_="figure_title figure_title_two_row")
i2 = soup.find_all("span",class_="info_inner")
for each in i1:
p =r'(target="_blank">)(.+)(</a>)'#用正则表达式匹配
play_name =re.search(p,str(each)).group(2)
sheet1.write(count1,0,play_name)
count1 += 1
for each in i2:
play_num = ''
p = re.compile(r'\d+\.?万?')
play_num0 = p.findall(str(each))
for each1 in play_num0:
play_num +=str(each1)
sheet1.write(count2,1,play_num)
count2 += 1
#保存该excel文件,有同名文件时直接覆盖
Nowtime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
excel_name = str(Nowtime)+'.xls'
workbook.save(excel_name)
print('done')
tudou.quit()
暂时写这么多,后期会优化代码,编写界面。
这里有一个bug,selenium 翻页以后,获取到的网页内容为前一页的,而非当前页。望大神指点。
-------------------------附录
1. python高手之路python处理excel文件(方法汇总) http://www.jb51.net/article/77626.htm
2. python模块介绍- xlwt 创建xls文件(excel) http://www.cnblogs.com/snake-hand/p/3153158.html
3. seleniumwebdriver(python)第三版 http://wenku.baidu.com/view/cd580331b6360b4c2e3f5727a5e9856a5612268d
4. Beautiful Soup 中文文档 https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
Python爬虫爬取qq视频等动态网页全代码的更多相关文章
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- python爬虫—爬取英文名以及正则表达式的介绍
python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...
- python爬虫---爬取王者荣耀全部皮肤图片
代码: import requests json_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win ...
- Python爬虫 - 爬取百度html代码前200行
Python爬虫 - 爬取百度html代码前200行 - 改进版, 增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...
- 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...
- Python爬虫|爬取喜马拉雅音频
"GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...
- python爬虫爬取内容中,-xa0,-u3000的含义
python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310
- Python爬虫爬取全书网小说,程序源码+程序详细分析
Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...
- 一个简单的python爬虫,爬取知乎
一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: # -*- cod ...
随机推荐
- 【转】Linux 上的最佳 C/C++ IDE
IDE介绍收藏篇: 个人linux下开发经验不多,一般也都使用shell远程连接使用命令行模式开发.如果自己在自己机器上开发还是有IDE要方便很多,看到这篇帖子就果断的转过来先收藏下,之前自己使用过E ...
- Oracle行转列的3种方法
测试表为A3 , 有5个字段:ID1, ID2, ID3, ID4, ID5 测试数据如下: ID1 ID2 ID3 ID4 ID5 1 2 3 4 5 11 22 33 44 55 111 222 ...
- Map笔记
Map,是一个接口,是以键值对的方式存储的,并且键是无序且不可重复的.Map和Collection没有什么关系,Map是一对一对的存,而Collection是一个一个的存. 下面有一个子接口:Sort ...
- Unity3D ——强大的跨平台3D游戏开发工具(四)
第六章 Unity3D中的C#Script编程的注意事项 也许您在学习Unity3D之前,已经是一位C#的编程高手了.但在Unity3D中的C#并不像真正的C#那般强大,在Unity3D的C#中必须全 ...
- p1349星屑幻想
这道题的原题目我也不知道是什么. 大致题意是有一个图,有些点的权值已确定,要求你确定其他点的权值使所有边两个点的权值的xor和最小,输出所有点的最终权值,输出有spj: 解法是最小割,由于题目要求的使 ...
- java数据结构整理(二)
一.List接口,有序的Collection接口,能够精确地控制每个元素插入的位置,允许有相同的元素 1.链表,LinkedList实现了List接口,允许null元素,提供了get().remove ...
- Oracle数据库中的函数
1.随机数函数:DBMS_RANDOM.RANDOM )) FROM DUAL; --产生一个100以内的随机数 *dbms_random.value) FROM dual; --产生一个100-10 ...
- 按住ctrl键可以在新窗口打开图片
用firebug查看网页时,img标签(或background属性里面的url地址源)里面的图片源按住ctrl键可以弹出新窗口显示,并可右键另存为到本地目录
- ANT编译时执行Junit测试
1.Junit.jar(和jakarta-ant-optional.jar 不是必须) 放在ant_home/lib中,用于支持build.xml中的<junit>标签 2.修改build ...
- html中object标签详解
定义和用法 object标签定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. &l ...