一:网页结构分析

二:代码实战#! /usr/bin/env python2

# encoding=utf-8

#BeautifulSoup需要安装 MySQLdb

import sys,os,re,hashlib

import urllib

import httplib2

from lxml import etree

import MySQLdb

from BeautifulSoup import BeautifulSoup

import urllib2

import re

import time

reload(sys)

from datetime import datetime as dt,timedelta

import re

h=httplib2.Http(timeout=10)

#设置请求http头 模拟伪装 浏览器

headers={

'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)'

}

#正则匹配a标签

pattern = '(.*?)'

#日志记录

log_path='./sporttery'

log_file='%s.log' % dt.now().strftime('%Y-%m-%d')

if not os.path.exists(log_path):

os.makedirs(log_path)

log=open('%s/%s' % (log_path,log_file),'w+')

#python操作mysql数据库

conn= MySQLdb.connect(

host='localhost',

port = 3306,

user='root',

passwd='root',

db ='test',

)

conn.set_character_set('utf8')

cur = conn.cursor()

cur.execute('SET NAMES utf8;')

cur.execute('SET CHARACTER SET utf8;')

cur.execute('SET character_set_connection=utf8;')

cur.close()

#获取请求链接内容 失败再次执行

def download(url):

fails = 0

while True:

if fails>5:return None

try:

res,content = h.request(url,'GET',headers=headers)

return content.decode('utf-8','ignore')

except:

print(u'打开链接失败'+url)

fails +=1

#字符串截取方法

def GetMiddleStr(content,startStr,endStr):

startIndex = content.index(startStr)

if startIndex>=0:

startIndex += len(startStr)

endIndex = content.index(endStr)

return content[startIndex:endIndex]

def get_ul(data):

mystring=GetMiddleStr(data,'','')

return mystring

def test_sporttery(i):

url='http://www.xxx.com/video/video_%E8%B6%B3%E7%90%83%E9%AD%94%E6%96%B9_'+str(i)+'.html'

print url

#http://www.xxx.com/video/video_%E8%B6%B3%E7%90%83%E9%AD%94%E6%96%B9_2.html

source=download(url)

data=get_ul(source)

datas=data.split('

')

for each in datas:

ret=re.findall(r"(?<=href=\\").+?(?=\\")|(?<=href=\\').+?(?=\\')" ,each)

for urls in ret:

detial=download(urls)

if detial:

detial_content=GetMiddleStr(detial,'createFlashVideo','m3u8').replace(' ', '')

if detial_content:

end_url_rex=GetMiddleStr(detial_content+".m3u8",'http://','.m3u8')+"m3u8"

#最终的url

#title

sstree = etree.HTML(detial)

ssnodes = sstree.xpath('//*[@id="playVideo"]/div[1]/h2')

for ssn in ssnodes:

name= ssn.text.strip().replace('/h2>', '')

#title=GetMiddleStr(detial,'

').replace(' ', '')

#简介

introduction=GetMiddleStr(detial,'video-info">','').replace(' ', '')

dr = re.compile(r']+>',re.S)

introductions = dr.sub('',introduction)

end_content=introductions.strip().replace('/span>', '')

end_time= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()+8*60*60))

#end_times=dt.now().strftime('%Y-%m-%d %H:%i:%S')

saveDB(urls,end_url_rex,name,end_content,str(i),end_time)

def saveDB(current_url,end_url_rex,names,end_content,page,create_time):

#添加select update

sql = 'INSERT INTO test.mytables(current_url,end_url_rex,`names`,end_content,page,create_time)\\

VALUES (%s,%s,%s,%s,%s,%s)'

print sql

cur = conn.cursor()

cur.execute(sql,(current_url,end_url_rex,names,end_content,page,create_time))

cur.close()

conn.commit()

if __name__ == '__main__':

first="http://www.xxx.com/video/video_%E8%B6%B3%E7%90%83%E9%AD%94%E6%96%B9_1.html"

url = urllib2.urlopen(first)

content = url.read()

soup = BeautifulSoup(content)

strs=soup.findAll(attrs={"class":"pagination"})

lists=str(strs[0])

listss=re.findall(r'\\d+',lists)

count=len(listss)

list_string = list(set(listss))

str_num= list_string[-1]

i = 1

while i <= int(str_num):

test_sporttery(i)

i += 1

网页爬虫python代码_Python 爬虫web网页版程序代码相关推荐

  1. 爬虫python入门_python爬虫入门教程有哪些?适合的只有这三个

    python爬虫是现在包括以后一种很重要的获取数据的方式. 当然,也因为网络爬虫本身也很有趣,所以很多人了解过一次爬虫后,就产生了浓厚的兴趣. 但是,想学python爬虫的话,应该看什么python爬 ...

  2. python测试代码_python英语单词测试小程序代码实例

    这篇文章主要介绍了python英语单词测试小程序代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 爬取了扇贝英语网,并制作了一个英语单词测试的 ...

  3. python定时启动代码_python每天定时运行某程序代码

    思路:利用time函数返回的时间字符串与指定时间字符串做比较,相等的时候执行对应的操作.不知道大家的思路是什么,感觉这样比较耗CPU.... 此处设置为15:30:10 输出相应内容,需要执行什么,就 ...

  4. 爬虫python区别_Python爬虫-04:贴吧爬虫以及GET和POST的区别

    1. URL的组成 汉字通过URL encode(UTF-8)编码出来的编码,里面的字符全是打字节 如果你复制粘贴下来这个网址,出来的不是汉字,而是编码后的字节 https://www.baidu.c ...

  5. 网页运行python脚本_python脚本和网页有何区别

    Python是一种计算机程序设计语言,一种面向对象的动态类型语言,一种脚本语言.最初被设计用于编写自动化脚本(shell)的,常用于各种服务器的维护和自动化运行.它具有丰富和强大的库.它常被昵称为胶水 ...

  6. HTML5+CSS期末大作业:运动体育网站设计主题——体育铅球(5页)带注册 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...

  7. HTML5期末大作业:动漫网站设计——斗破苍穹动漫(6页)带轮播特效 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品

    HTML5期末大作业:动漫网站设计--斗破苍穹动漫(6页)带轮播特效 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 大学生毕设网页 ...

  8. html大作业网页代码——神之刃游戏官网网页(6页) HTML+CSS+JavaScript web网页设计与开发

    HTML5期末大作业:游戏官网网站设计--神之刃游戏官网网页(6页) HTML+CSS+JavaScript web网页设计与开发 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商 ...

  9. HTML+CSS期末作业 :个人博客网站设计(2页) 学生网页课程设计期末作业下载 web网页设计制作成品

    HTML+CSS期末作业 :个人博客网站设计(2页) 学生网页课程设计期末作业下载 web网页设计制作成品 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶 ...

  10. HTML5期末大作业:游戏官网网站设计——神之刃游戏官网网页(6页) HTML+CSS+JavaScript web网页设计与开发

    HTML5期末大作业:游戏官网网站设计--神之刃游戏官网网页(6页) HTML+CSS+JavaScript web网页设计与开发 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商 ...

最新文章

  1. 8月组队学习机器学习理论
  2. 西安交通大学2019计算机复试方案,西安交通大学2019年招收硕士研究生复试体检通知...
  3. java反码补码原码作用_java原码补码反码关系解析
  4. Ninja提升编译速度的方法-Android10.0编译系统(十)
  5. go使用反射reflect获取变量类型
  6. 冲刺阶段——Day2
  7. 覃超:从湘西到Facebook,硅谷只是技术人生的一小站
  8. 实战干货!Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权!
  9. 赋予mysql用户触发器权限_MYSQL设置触发器权限问题的解决方法
  10. python输入数字是什么类型的游戏_“数字炸弹”——一个练习Python基础知识的小游戏...
  11. android 视频编码vfr cfr,[转载]VFR的源转换CRF输出 批处理
  12. Python面试宝典
  13. 近五年计算机考研国家线、自划线汇总!
  14. web前端—前端三剑客之JS(12):字符串
  15. mysql多线程复制crash_MySQL 并行复制(MTS) 从库发生异常crash分析
  16. mac上的kindle打开mobi文件的方式
  17. pyqt5+pyinstaller图标ico制作说明
  18. 母线电容及其计算方法
  19. 三国杀小游戏(C++)
  20. Linux-软件安装管理

热门文章

  1. Linux如何显示文件数目的技巧比较两个文件夹是否相同
  2. BRCM5.02编译四: ERROR: lzo/lzo1x.h development library is required for build
  3. 菜鸟教程 之 shell 脚本学习笔记 (一)
  4. 第二十四章:页面导航(五)
  5. 通过COS上传文件至腾讯云
  6. pyodbc psutil wmi paramiko
  7. 长亭技术专栏 安全攻防技术分享
  8. Spark 读 Elasticsearch
  9. JAVA 对象引用,以及对象赋值
  10. Excel函数应用教程:数据库函数