利用selenium+PyQuery实现淘宝美食数据搜集并保存至MongeDB 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可以用Selenium来驱动浏览器模拟点击来爬取淘宝的信息.这样我们只要关系操作,不用关心后台发生了怎样的请求.这样有个好处是:可以直接获取网页渲染后的源代码.输出 page_source 属性即可. 这样,我们就可以做到网页的动态爬取了.缺点是速度相比之下比较慢. 流程框架 爬虫实战 spider详…
一.介绍 本例子用Selenium +phantomjs爬取活动行(http://www.huodongxing.com/search?qs=数字&city=全国&pi=1)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:Elements = doc('ul[class="event-hori…
一.介绍 本例子用Selenium +phantomjs爬取央视栏目(http://search.cctv.com/search.php?qtext=消费主张&type=video)的信息(标题,时间) 二.网站信息 python 代码 # coding=utf-8 import os import re from selenium import webdriver from datetime import datetime,timedelta import time from pyquery…
SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. Python MySQL API (DBAPI) 通过 pymysql 连接管理mysql create table students ( id int not null auto_increment primary key, name ) not null, sex…
标准库(内置模块) time与datetime 模块 时间表示方式 1.时间戳 2.格式化的字符串 3.元组形式 时间戳就是一个秒数 x=time.time(),从1970年1月1日0时0分0秒到现在的秒数 x/3600/24/365:年数,1970+年数,今年(近似) time.struct_time():dst时区,0代表不是夏令时 time.timezone:时区 time.altzone:夏令时时区 time.daylight:是否夏令时 time.time():时间戳 time.sle…
一.redis简介 1.redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库.       2.redis的官网地址,非常好记,是redis.io.       3.Redis和mongodb的区别是redis数据全部存储在内存中,使用磁盘仅用于数据的持久化,而mongodb数据是存储在磁盘上.redis本身性能是非常好的,每秒支持30w次的读写. 4.关系型数据库mysql.oracle.sql server.db2.sqlite,通过sql…
一.安装MySQL-python # yum install -y MySQL-python 二.打开数据库连接 #!/usr/bin/python import MySQLdb conn = MySQLdb.connect(user='root',passwd='admin',host='127.0.0.1') conn.select_db('test') cur = conn.cursor() 三.操作数据库 def insertdb(): sql = 'insert into test(n…
Scrapy框架详解及其基本使用 scrapy框架原理 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy 使用了 Twisted异步网络库来处理网络通讯.…
1. 协程 并发的解决方案: 多进程      多线程      什么叫并发:看起来同时进行 如何实现并发:切换+保存状态 进程线程都是由操作系统调度的 协程:单线程下实现的并发,应用程序级别的切换,操作系统无法感知 找到一个解决方案:1.在多个任务直接切换+保存状态 2.检测应用程序的IO,实现遇到IO才切换. 并发提高效率:遇到IO的时候切换,才能提高效率,如果是计算,就不会提高效率. yield:能实现协程,但是不能提高效率. greenlet:需要pip3 install greenle…
在一个程序当中,一般都会包含文件夹:bin.conf.lib.data.logs,以及readme文件. 所写程序存放到各自的文件夹中,如何进行串联? 首先,通过导入文件导入模块方式,引用其他人写好的代码. 其次,找到最顶层的程序所在文件夹,加入到环境变量中 import sys,os BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(file))) #取到工程目录 sys.path.insert(0,BASE_PATH)#加…