Python与SEO

Python与SEO 扫二维码继续学习

从小白到上手,讲讲如何用python来辅助seo工作
(12人)

1200.00元

该课程为限制课程
请联系客服

LINUX常见命令

cd / 进入根目录

cd .. 返回上一级目录

cd 返回用户的主目录

cd home/ 进入home目录

pwd 查看当前的路径

mkdir 创建一个文件夹

vim sd 创建一个叫做sd的文件

cat sd 打开sd文件

rm sd 删除掉sd文件 

ls 查看当前目录下的文件和文件夹

ls -l 查看详细内容参数(文件和文件夹的)

xshell 蓝色的一般都是目录

cp sd sdd 把sd内容复制到sdd文件

cat sd > sdc 把sd文件复制到sdc

shell命令

cd sdwd/

cat keyword | head -199

cat keyword |wc -l 统计

 

 

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

读取文件

 

 cmd

 

 

[展开全文]

链接另一台主机:ssh root@123.56.248.187

敲回车然后输入密码

1.查看keyword文件前50行内容:

cat keyword |head -50

2.查看keyword文件有多少行:

cat keyword |wc -l

3.打印keyword文件第一行的前十个关键字。

cat keyword |awk '{print $1}' |head -10

4.打印keyword文件最后一行的前十个。

cat keyword |awk '{print $NF}'|head -10

5.打印搜索量大于100的词:

$0代表输出整行

awk默认是以空格为分隔

cat keyword |awk '{if($2>100)print $0}'|head -100

6.统计第二列的总和

cat keyword | awk '{sum+=$2}END{print sum}'

7.把空格的分隔符变为逗号

cat keyword |perl -p -e 's/ /,/g' |head -10

8.让awk以逗号为分隔

cat keyword|awk -F"," '{print $1}'|head -10

 

 

**************************************

grep可以以匹配正则的方式打印出来搜索到的文本

1.打印出以招聘会结尾的词

cat keyword|awk '{print $1}'|grep '招聘会$'|head -10

2. 排除以招聘会结尾的词

'-v'表示不包含

‘-o’表示只打印匹配部分的文本

$在正则中表示以XX结尾

cat keyword|awk '{print $1}'|grep -v '招聘会$'|head -10

 

***************************************

sort命令,对文本进行排序

k表示针对第几列进行排序

n表示按数字进行排序,默认按升序进行排序

r表示按降序排列

1.将文件内容第二行按照数字大小进行降序排列

cat keyword|sort -k2nr|head -100

 

**************************

uniq 对文本进行去重,只能对相邻重复的进行去重,不相邻的没用,所以在使用uniq之前,需要用sort首先进行排序

'-c'表示打印重复次数

1.查看keyword文件有哪些分组:

cat keyword|awk '{print $NF}'|sort|uniq -c|head -100

2.查看用户搜索招聘的用户行为,用户对招聘会怎样搜索

cat keyword|awk '{print $1}'|grep -o '招聘.*'|sort|uniq -c|sort -nr|head -100

3.看招聘会总搜索量多少

cat keyword|awk '{print $1,$2}'|grep '招聘会 ' |awk '{sum+=$2}END{print sum}'

**********日志分析********************

1.打印百度蜘蛛抓取的行

cat log |grep 'Baiduspider/2.0'|head -10

2.看百度蜘蛛今天抓了多少次

cat log |grep 'Baiduspider/2.0'|wc -l

3.看百度蜘蛛抓取url的状态码

cat log |grep 'Baiduspider/2.0'|awk '{print $9}'|sort|uniq -c|sort -nr

4.查看抓取url的类型

(1).把数字替换成自定义的符号('ID'):

cat log |grep 'Baiduspider/2.0'|awk '{print $7}'|perl -p -e 's/\d+/ID/g'|head -100

(2).进行排序,去重计数,可以看百度对哪一类url抓的比较多。做内链调整的时候可用到这些数据。

cat log |grep 'Baiduspider/2.0'|awk '{print $7}'|perl -p -e's/\d+/ID/g'|sort|uniq -c|sort -nr|head -100

5.看从自然搜索引擎过来的流量

cat log |egrep 'www.baidu.com/.*(wd|word)='|head -30

6.看哪些页面产生的来自百度的流量最多

cat log |egrep 'www.baidu.com/.*(wd|word)='|awk '{print $7}'|sort|uniq -c|sort -nr|head -100

7.生成sitemap的代码

#coding:utf-8

import sys.time

input_file = sys.argv[1]

date = time.strftime('%Y-%m-%d',time.localtime(time.time()))

print '<?xml version="1.0" encoding="utf-8"*?>'

print '<urlset>'

for line in open(input_file):

                 url = line.strip()

                 print '          <url>'

                 print '                <loc>%s</loc>' %url

                 print '           <lastmod>%s</lastmod>'  % date

                  print '<priority>0.8</priority>'

print '</urlset>'

 

 

8.把log里面的所有url提取出来,导入url文件

cat log|awk '{print $7}' > url

9.把url文件每5w分隔为一个文件:

split -50000 url ceshi_

10.生成xml的格式:

python sitemap_pc.py ceshi_aa|head -10

 

代码用这个也好:

cat sitemap.txt|awk 'BEGIN{print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset>"}{print "<url>\n<loc>"$0"</loc>\n<lastmod>2014-07-18</lastmod>\n<changefreq>always</changefreq>\n</url>"}END{print "</urlset>"}'

 

[展开全文]

经过readlines读取后打印出来的是一个列表

************关于csv文件**********************

csv文件都是以逗号为分隔的。

1.csv文件的读取代码:

import csv

csvfile = file('file.csv','rb')

reader = csv.reader(csvfile)

for line in reader:

          print line

csvfile.close()

2.向csv文件追加内容

import csv

svfile = file('file.csv','ab')

writer = csv.writer(csvfile)

data = []

data.append('seo')

data.append('seo')

data.append('seo')

#writer.writerow(['name','age','iphone'])

#第一种添加方式

writer.writerow(['name','age','iphone'])

#第二种添加方式

csvfile.close()

 

[展开全文]

if条件语句

#打印包含‘招聘会’且搜索量大于100的关键词

#coding:utf-8

for line in open('keyword'):

      line = line.strip() # 去掉每行结尾的空格和换行符

      word = line.split(' ')[0]

      search = line.split(' ')[1]

 

if ‘招聘会’ in word and int(search)>100:

       print word,search

''''''''''''''''''''''while 循环''''''''''''''''''''''''

1.分析用户搜索招聘相关的行为,会打印出搜索量和关键字

cat keywork|awk '{print $1}'|grep -o '招聘.*'|sort|uniq -c|sort -nr|head -100

2.用python实行(shell是占内存的,所有数据得先写到内存才能执行,python比较省资源)

 

 

[展开全文]

一、字符串连接的两种方法:

1.

a = ["a",'b','c','d']

b = ''

b = ','.join(a)

>>>print b

>>>a,b,c,d

2.

a = ["a",'b','c','d']

b = ''

b = '%s,%s,%s,%s'%tuple(a)

>>>print b 

>>>a,b,c,d

二、字符串替换的两种方式

1.

a = 'hellow ,world'

b = a.replace('world','python')

>>>print b

>>>hellow python

2.

import re

a = 'hellow ,world'

b = re.sub('world','python',a)

>>>print b

>>>hellow python

三、字符串查找

a = 'itseo'

>>>print a.find('s')

>>>2 

四、字符串切割

a = '北京招聘,231321,321321,城市招聘'

b= a.split(',')

>>>print b[0]

>>>北京招聘

注意:utf8中,一个中文对应3个字节。

gbk中, 一个中文对应2个字节。

unicode 一个中文对应1个字节

查看汉字长度:

a = '百度招聘'

>>>print len(a)

>>>12

>>>print len(a.decode('utf-8'))

>>>4

五、字符串拼接

1

a = 'itseo'

b = '%s niubi' % a

>>>print b 

>>>itseo niubi

2

a = 'itseo'

b = '{jigou} niubi'.format{jigou=a}

>>>print b 

>>>itseo niubi

六、去掉空格和换行

a = '''               fafdafafafds

'''

#删掉字符串左右两边的空格和换行,中间去空格可用replace或sub进行替换。

>>>print a.strip()

>>>fafdafafafds

七、两个列表合并到一块

a.extend(b)

append的对象为字符串,extend的对象为列表。

八、按照原有顺序进行去重。

a = [9,91,5,3,3,3,9,34,54,33,33]

b = sorted(set(a),key=a.index)

>>>print  b

>>>[9,1,5,3,54,33]

 

a.clear()清空字典a。

a.has_key('word')字典a中是否包含word。

a.keys()查看字典a中所有的键。

a.values()查看字典a中所有的值。

a.items()查看字典a中所有的键值。

 

##字典排序

a = {'seo':2312121,'itseo':90989,'百度seo':2313}

b = sorted(a.items(),key=lambda a:a[1],reverse=True)字典按值降序排列。

 

##按百分比呈现,保留两位小数

a = 123

b = 1000

>>>print (format(float(a)/float(b),'2%'))

>>>12%

 

[展开全文]

字典格式和json格式是差不多的。

表达式:是指“某事”;

语句:‘做某事’。

常见语句:if/for/while/try/def/class/import..

#coding:utf-8

for line in open('keyword'):

       print line.strip()

for line in open('keyword'):

      if '公司' in line:

                print  line

while True:

      print   1

 

函数:1.自定义函数

def test1():

      a=1

      b=2

      num = a+b

      return num

print test1()

 

在console里面输入document.charset查看网页编码格式

[展开全文]

读取文件的方法 

f = open('file').readline()读取文件file中的第一行,以字符串的形式返回。

f = open('file').readlines()读取文件file中的每一行,以列表的形式返回

r只读方式打开

w只写方式打开

a 追加方式打开

r+/w+读写的方式打开

a+追加读写方式打开

b:已进制方式打开

 

[展开全文]
kuankuan · 2017-06-19 · 文件操作 0

数据类型

字符串的链接 有两种方法

jion(a) 

tuple(a)

提取 a【*】

替换b = a.replace('word','python')

利用正则模块

import re
>>> b = re.sub('word','python',a)

字符串相加

a + b

查找位置 find

切割 split

中文字的长度 print len(a.decode('utf-8'))

字符串拼接

去掉空格与换行

 a.strip() 只能删除最前面或者最后面的空格,中间的没有办法去掉

中间的只能通过替换的方式来换掉print a.replace(' ','')

或者正则的方法

 print re.sub(' ','',a)

删除列表中最后一位索引。a.pop()并返回最后的一位索引

列表查找

查找索引的位置

列表排序

a.sort()升序

a.sort(reverse = True)降序

去重 b = sorted(set(a),key=a.index)分词

字符串转换成列表 print a.spilt(',')

元祖中的值是无法修改的

 

元祖是一个元素 列表是一堆元素的集合

字典可以是任意数据类型,并且可以嵌套很多层

集合中不存在重复,并且没有顺序一般在去重中应用

 

[展开全文]
kuankuan · 2017-06-03 · 数据类型 0

常用代码片段

python入门书籍

笨方法学python

python

交互式解释器  cpython/pyhon/PyPy

算法 重视逻辑

数据类型

将计算的数据存在内存中,存储的数据可以分为很多种,常用的 字符串(str)、布尔(bool)、数字(整数、浮点数)、列表(list)、元祖(tuple)、字典(dict)、

集合(set)

str =‘123456’

str = “adnvb”

bool = True/False

int = 123456

float = 1324.1

list = [1,2,3, 'abcd'[1.2.3.'abcd']]有顺序之分

tuple =(‘abdc’,‘python’1234) 无顺序之分

字典类似网站的jacy格式

dict = {‘name':"GoGo"}

GoGo 是键name的值

dict = {‘name':"GoGo",'age': '24'}

表达式 2+3 某事  语句 打印 2+3 做某事

常见语句

if/for/while/def/class/import

函数

1 自定义函数、内置函数 匿名函数

[展开全文]
  •  
[展开全文]
cheng · 2016-10-25 · 多线程 0

>>> a = ['百度','seo',231321]
>>> for line in a:
... print line
  File "<stdin>", line 2
    print line
        ^
IndentationError: expected an indented block

 

[展开全文]
hongbao · 2016-05-15 · 数据类型 0

在进行python-mysql装载时`mysql_config not found`这个错误出现,要如何解决?
- 出现这种错误的时候,要分析一下,如果是常规的装载,则也许是缺少几个组件,此时只需要加载上去即可
    - sudo updatedb
    - locate mysql config
    - `mysql_config`的位置为:`/usr/bin/mysql_config`在mysql-python源码包下找到:`setup_posix.py` 文件,然后找到文件中的`mysql_config.path` 将其值改为:`/usr/bin/mysql_config`,然后 sudo python setup.py install ,就可以了
- 如果是lnmp一键装载的,则只需要一条命令就可以解决:
    - `ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config`
    - 此命令是将在/usr/local/mysql/bin/里面的文件连接到了/usr/local/bin目录下
    - 此时再次运行pip install python-mysql就不会再报错了。

[展开全文]
CKing · 2016-03-27 · python操作mysql 1

1,日志中包含百度蜘蛛的内容

car 文件名 |gerp 'baiduspider/2.0’|head -30

2,想看蜘蛛捉取多少次

car 文件名 |gerp 'baiduspider/2.0’|head -l 

3,状态码

car 文件名 |gerp 'baiduspider/2.0’|awk '{print $9}'|head -次数

 

car 文件名 |gerp 'baiduspider/2.0’|awk '{print $9}'|sort|unoq -c|sort -nr

4,URL类型

cat 文件名 |gerp 'baiduspider/2.0’|awk '{print $9}'|perl -p -e 's/\d+/ID/g'

 

[展开全文]

授课教师

ITSEO讲师

学员动态