2019年12月14日 | 标签:

标题:php + fusioncharts组合运用不包含数据库动态生成图表 注意事项

——————————————————————————————————————————-

时间:2012/11/10 18:39:52

——————————————————————————————————————————-

内容:

 

前面已经介绍怎么入门制作fusioncharts的图表 但是那是静态的 我们需要根据我们提交的查询范围现实不一样的数据  思路是这样的

 

Xml文件是使用php通过echo写出来的 数据比较多 所以可以用for循环,for循环最开始出错浪费了15分钟因为2个点,

 

1,  参数要用分号隔开 不是c语言不能用, 因为一个分号代表一个语句

2,  ,2,变量一定要用$打头去写 php的变量需要有前缀的

然后通过php的get预定义全局变量得到url中的参数 来选择数据的起始范围放入

For循环中 这里面要做判断 get得到数据这用get的的数据 get得不到就用默认的数据

 

Xml中一定不能包含有特殊空格 这样不是标准的xml文件

然后通过setdataurl传参数的时候 必须对setdataurl的url加一个escape要不然只能传第一个参数

原因在于setdataurl这个处理&符号不行 所以碰到&就终止了,这个浪费了30分钟

 

数组赋值是小括号的array() 数组的引用才是中括号arrayname[]

 

神奇的是echo命令用双引号阔起来 中间都不用转义字符的 中间有双引号需要用转义字符\”来表示 就是用变量的时候搞清楚什么时候需要引号

 

表单提交需要用get再得到提交的值 显示出来 要不然提交后就丢失了

javascript可以使用的php的嵌入的的

 

 

 

 

前面已经介绍怎么入门制作fusioncharts的图表 但是那是静态的 我们需要根据我们提交的查询范围现实不一样的数据  思路是这样的

 

Xml文件是使用php通过echo写出来的 数据比较多 所以可以用for循环,for循环最开始出错浪费了15分钟因为2个点,

 

1,  参数要用分号隔开 不是c语言不能用, 因为一个分号代表一个语句

2,  ,2,变量一定要用$打头去写 php的变量需要有前缀的

然后通过php的get预定义全局变量得到url中的参数 来选择数据的起始范围放入

For循环中 这里面要做判断 get得到数据这用get的的数据 get得不到就用默认的数据

 

Xml中一定不能包含有特殊空格 这样不是标准的xml文件

然后通过setdataurl传参数的时候 必须对setdataurl的url加一个escape要不然只能传第一个参数

原因在于setdataurl这个处理&符号不行 所以碰到&就终止了,这个浪费了30分钟

 

数组赋值是小括号的array() 数组的引用才是中括号arrayname[]

 

神奇的是echo命令用双引号阔起来 中间都不用转义字符的 中间有双引号需要用转义字符\”来表示 就是用变量的时候搞清楚什么时候需要引号

 

表单提交需要用get再得到提交的值 显示出来 要不然提交后就丢失了

javascript可以使用的php的嵌入的的

 

 

 

没有评论 (60 views)
2019年12月13日 | 标签:

标题:python 的库beautifulsoup使用方法入门及抓取百度结果页面总共6行代码

——————————————————————————————————————————-

时间:2012/11/15 16:43:24

——————————————————————————————————————————-

内容:

from bs4 import BeautifulSoup
import urllib2
import re
html=urllib2.urlopen(“http://www.baidu.com/s?wd=seo&rn=100”).read()
soup=BeautifulSoup(html)
results = soup.find_all(class_=re.compile(“result”))
for links in results:
print links.h3.get_text()
print links.span.get_text()

 

按下f5 得到结果

seo_百度百科

SEO综合查询 – 站长工具
seo.chinaz.com/ 2012-11-14
搜外SEO论坛-人气最旺的SEO行业社区,时刻交流搜索引擎技术更新…
www.seowhy.com/bbs/ 2012-11-14
SEO每天一贴 – Zac的搜索引擎优化博客。嗯,这个才是官方网站。
www.seozac.com/ 2012-11-2
百度SEO优化_外链及关键词SEO工具_百度站长平台

百度搜索引擎优化指南 Baidu SEO Guide 2.0 – seo培训入门必读
baiduseoguide.com/ 2012-10-31
seo_百度词典

SEO Company | Search Engine Optimization Firm – GreenCowSEO.com
www.greencowseo.com/ 2012-11-14
合肥优派&UPAI SEO/SEM优化中小企业营销利器.
www.upai.net.cn/ 2012-10-15

 

 

厉害了

 

首先介绍python

他是一种脚本语言, 就是不需要知道内存怎么调用 甚至不用定义变量 和php差不多

但是永远不需要使用$ 然后语法简洁的要死 如果有php的基础学习python3天就可以了

python安装

python安装很简单 下载win版本就可以了然后一路next 注意一点 要想在cmd里面直接输入python的话

需要在window的系统变量里面添加是我的电脑 环境变量 path 加入pthon的地方用分号隔开

运行使用python gui 新建一个窗口就可以编程 要运行就f5

python库的安装

安装好的python有几个文件夹里面有个libs里面是很多库的

其中最有用分析网页的就是 beautifulsoup这个库了

安装也很方便 使用cd进入到解压的文件夹下 我用的是bs4 beautifulsoup4

然后使用命令 python setup.py install

然后就额可以

使用方法就是先引入库

from bs4 import BeautifulSoup

这个里面b和s要大写 然后import 和import from区别是 前者每次使用函数需要使用前缀

import urllib2  import re

导入urllib2和re的库 这里没使用from 所以每次需要用里面的函数的时候先要使用库名.函数名

例如urllib.urlopen,  re.compile

html=urllib2.urlopen(“http://www.baidu.com/s?wd=seo&rn=100”).read()
通过函数urlopen来打开一个地址 然后读取 复制给html 返回的是html代码

soup=BeautifulSoup(html)
BeautifulSoup是一个html解析器 讲html解析成一个树状机构然后就可以方便通过起关系调用

soup.a 就是第一个a标签 如果要所以的a标签就是find_all(“a”) 如果要a标签里面的文字就是

soup.a.string,如果要a标签里面的url就是soup.a.get(“href”)

如果是meta description就是soup.find(“meta”,attrs:{name=descrption}).get(“content”)

如果是某个class的话就是soup.find(class_=re.compile(“keyword”)

记住class的话一定要下划线

results = soup.find_all(class_=re.compile(“result”))

这部比较经典

通过使用findall的方法找出所有满足条件的标签

这些标签的条件是class这个熟悉里面包含了results

这里的re.compile就是正则表达式 如果使用了from re import re

这里就只用写compile(RegEx)来匹配了

class因为是保留字符串 所以要用class_来表示

for links in results:

就是针对返回结果里面的所有变量 循环开始

print links.h3.get_text() 得到每次返回结果的h3标签里面的文字部分

print links.span.get_text()得到每次返回结果的span标签里面的文字部分

 

 

 

 

 

from bs4 import BeautifulSoup
import urllib2
import re
html=urllib2.urlopen(“http://www.baidu.com/s?wd=seo&rn=100”).read()
soup=BeautifulSoup(html)
results = soup.find_all(class_=re.compile(“result”))
for links in results:
print links.h3.get_text()
print links.span.get_text()

 

按下f5 得到结果

seo_百度百科

SEO综合查询 – 站长工具
seo.chinaz.com/ 2012-11-14
搜外SEO论坛-人气最旺的SEO行业社区,时刻交流搜索引擎技术更新…
www.seowhy.com/bbs/ 2012-11-14
SEO每天一贴 – Zac的搜索引擎优化博客。嗯,这个才是官方网站。
www.seozac.com/ 2012-11-2
百度SEO优化_外链及关键词SEO工具_百度站长平台

百度搜索引擎优化指南 Baidu SEO Guide 2.0 – seo培训入门必读
baiduseoguide.com/ 2012-10-31
seo_百度词典

SEO Company | Search Engine Optimization Firm – GreenCowSEO.com
www.greencowseo.com/ 2012-11-14
合肥优派&UPAI SEO/SEM优化中小企业营销利器.
www.upai.net.cn/ 2012-10-15

 

 

厉害了

 

首先介绍python

他是一种脚本语言, 就是不需要知道内存怎么调用 甚至不用定义变量 和php差不多

但是永远不需要使用$ 然后语法简洁的要死 如果有php的基础学习python3天就可以了

python安装

python安装很简单 下载win版本就可以了然后一路next 注意一点 要想在cmd里面直接输入python的话

需要在window的系统变量里面添加是我的电脑 环境变量 path 加入pthon的地方用分号隔开

运行使用python gui 新建一个窗口就可以编程 要运行就f5

python库的安装

安装好的python有几个文件夹里面有个libs里面是很多库的

其中最有用分析网页的就是 beautifulsoup这个库了

安装也很方便 使用cd进入到解压的文件夹下 我用的是bs4 beautifulsoup4

然后使用命令 python setup.py install

然后就额可以

使用方法就是先引入库

from bs4 import BeautifulSoup

这个里面b和s要大写 然后import 和import from区别是 前者每次使用函数需要使用前缀

import urllib2  import re

导入urllib2和re的库 这里没使用from 所以每次需要用里面的函数的时候先要使用库名.函数名

例如urllib.urlopen,  re.compile

html=urllib2.urlopen(“http://www.baidu.com/s?wd=seo&rn=100”).read()
通过函数urlopen来打开一个地址 然后读取 复制给html 返回的是html代码

soup=BeautifulSoup(html)
BeautifulSoup是一个html解析器 讲html解析成一个树状机构然后就可以方便通过起关系调用

soup.a 就是第一个a标签 如果要所以的a标签就是find_all(“a”) 如果要a标签里面的文字就是

soup.a.string,如果要a标签里面的url就是soup.a.get(“href”)

如果是meta description就是soup.find(“meta”,attrs:{name=descrption}).get(“content”)

如果是某个class的话就是soup.find(class_=re.compile(“keyword”)

记住class的话一定要下划线

results = soup.find_all(class_=re.compile(“result”))

这部比较经典

通过使用findall的方法找出所有满足条件的标签

这些标签的条件是class这个熟悉里面包含了results

这里的re.compile就是正则表达式 如果使用了from re import re

这里就只用写compile(RegEx)来匹配了

class因为是保留字符串 所以要用class_来表示

for links in results:

就是针对返回结果里面的所有变量 循环开始

print links.h3.get_text() 得到每次返回结果的h3标签里面的文字部分

print links.span.get_text()得到每次返回结果的span标签里面的文字部分

 

 

 

 

 

没有评论 (63 views)
2019年12月12日 | 标签:

标题:python抓取百度结果中的排名和网址 极速版图书馆泡8个小时的成果

——————————————————————————————————————————-

时间:2012/11/18 20:10:59

——————————————————————————————————————————-

内容:

前言

实现方法

python的正则表达式帮了很大 忙

然后走的弯路是要注意匹配的时候.*? 后面加个问号防止贪婪匹配

贪婪匹配

就是匹配43432seoseo 我用(.*)seo 会默认的抓取了 43432seo

因为他会极可能的匹配多点 所以我要使用几个问号就是抓的少点

正则表达式的双引号用转移字符\加双引号 然后多种匹配就是

(a|b)针对2种情况都可以匹配

基本上思路就是

首先用大家都很熟悉的urllib库来抓数据

然后用re的来书写正则表达

然后用findall来找到所有的匹配输入数组

然后用for循环来遍历数组

然后遍历的时候插入

 

关键是正则表达式耗时

然后就是基本的判断

mysql记得要使用commit才能提交

 

还要提高的地方

中文字符的支持

以及快照时间的分离

还有真正的着陆页面的活取

定时执行

 

import re,time,urllib2,MySQLdb
t=time.time()
key=”%E8%B7%B3%E8%88%9E%E6%9C%BA”
html=urllib2.urlopen(“http://www.baidu.com/s?wd=%s&rn=100″ % key).read()
t0=time.time()-t
p3=re.compile(r”id=\”(\d{1,3})\”.*?(mu=\”http://([^\”]*?)\”|<span class=\”g\”>\s*([^<]*)</span>)”)

t1=time.time()-t

conn = MySQLdb.connect(user=’root’,passwd=’111111′,db=’schools’)

cursor = conn.cursor()

 

m=p3.findall(html)
t2=time.time()-t
for i in m:
k=i[0]
k=int(k)

if i[1].find(“mu=\”http://www.baidu.com”)+1:#在mu中如果有www开头的是百度知道
print “zhidao.baidu.com”
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (“zhidao.baidu.com”,key,k)
cursor.execute(sql)
elif i[1].find(“mu=\”http”)+1:#在mu中的就是百度产品了
print i[2]
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (i[2],key,k)
cursor.execute(sql)
else:
print i[3]#就是正常产品了
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (i[3],key,k)
cursor.execute(sql)

t3=time.time()-t
print “serp open spend %s\ncompile pattern spend %s\nfind all results spend %s\ntotal spend %s” %(t0,t1,t2,t3)
conn.commit()
cursor.close()

前言

实现方法

python的正则表达式帮了很大 忙

然后走的弯路是要注意匹配的时候.*? 后面加个问号防止贪婪匹配

贪婪匹配

就是匹配43432seoseo 我用(.*)seo 会默认的抓取了 43432seo

因为他会极可能的匹配多点 所以我要使用几个问号就是抓的少点

正则表达式的双引号用转移字符\加双引号 然后多种匹配就是

(a|b)针对2种情况都可以匹配

基本上思路就是

首先用大家都很熟悉的urllib库来抓数据

然后用re的来书写正则表达

然后用findall来找到所有的匹配输入数组

然后用for循环来遍历数组

然后遍历的时候插入

 

关键是正则表达式耗时

然后就是基本的判断

mysql记得要使用commit才能提交

 

还要提高的地方

中文字符的支持

以及快照时间的分离

还有真正的着陆页面的活取

定时执行

 

import re,time,urllib2,MySQLdb
t=time.time()
key=”%E8%B7%B3%E8%88%9E%E6%9C%BA”
html=urllib2.urlopen(“http://www.baidu.com/s?wd=%s&rn=100″ % key).read()
t0=time.time()-t
p3=re.compile(r”id=\”(\d{1,3})\”.*?(mu=\”http://([^\”]*?)\”|<span class=\”g\”>\s*([^<]*)</span>)”)

t1=time.time()-t

conn = MySQLdb.connect(user=’root’,passwd=’111111′,db=’schools’)

cursor = conn.cursor()

 

m=p3.findall(html)
t2=time.time()-t
for i in m:
k=i[0]
k=int(k)

if i[1].find(“mu=\”http://www.baidu.com”)+1:#在mu中如果有www开头的是百度知道
print “zhidao.baidu.com”
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (“zhidao.baidu.com”,key,k)
cursor.execute(sql)
elif i[1].find(“mu=\”http”)+1:#在mu中的就是百度产品了
print i[2]
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (i[2],key,k)
cursor.execute(sql)
else:
print i[3]#就是正常产品了
sql = “insert into serp(url,kw, pos) values (‘%s’,’%s’, %d)” % (i[3],key,k)
cursor.execute(sql)

t3=time.time()-t
print “serp open spend %s\ncompile pattern spend %s\nfind all results spend %s\ntotal spend %s” %(t0,t1,t2,t3)
conn.commit()
cursor.close()

没有评论 (280 views)