解决方案:最简单的方法,优采云 采集后直接导入到wordpress的数据库

优采云 发布时间: 2022-11-28 12:24

  解决方案:最简单的方法,优采云

采集后直接导入到wordpress的数据库

  很多人用wordpress做网站,用优采云

采集

,但不会发布。这里有一个简单的方法,可以瞬间将采集

到的内容直接发布到wordpress

  优点:简单、快速、一目了然。

  缺点:发布文章的分类标签需要手动编辑。

  更适合纯文本,或者像尴尬百科这样的笑话网站

  不谈采集

,只谈出版,

  

" />

  这里是最简单的演示,只发布内容和标题,要发布其他内容,照着做即可。

  首先找到默认模板:

  然后将模板更改为这样的东西,

  

" />

  这段代码是怎么来的?了解数据库的人一看就会知道。如果你不懂数据库,叫你哥是一种简单的方式。空间带的mysql数据库有运行界面phpmyadmin,一般空间都有。打开找到wp-post表,插入一条数据:这条数据,只填content和title

  , 其他留空

  然后点击执行,你会看到这样一段代码:

  插入 `DatabaseName`.`wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status` , `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count `) VALUES (NULL, '0', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '内容 xxxxxxx', '标题 XXXXXXXX', '', '发布', '打开', '打开', '', '', '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00', ' ', '0', '', '0', '发布', '', '0');

  替换:数据库名称 -> 你的数据库名称

  汇总:Python如何采集关键词数据

  对于SEO来说,关键词的排名对网站优化起着决定性的作用。关键词排名、流量来源、同行网站数据都可以通过SEO查询。常见的爱站站长工具、站长工具和5118都是不错的网站。

  当然现在5118更全面,应用更广泛!

  在数据和功能上,5118很强大!

  可以的话就付钱!

  5118的抗爬还是很不错的!

  需要登录领取,发现5118更新了一次!

  比如登录账号需要经过滑块验证码的反爬限制,关键词索引等数据以图片加密的形式展示。这人渣破解不了,就怕了。.

  不过有些数据还是可以参考的!所以,让 python 起来!

  打听一下设计网站,关键词设计迷信现状

  抓取网址:

  如果您不是付费会员,您只能查看前100页的数据!

  很多数据都是反爬限制,有点可惜!

  虽然5118会员登录有滑块验证码,但是cookies登录还是非常好用的!

  我们手动添加 cookie 以登录以采集

所需数据。

  几个关键点:

  1.添加协议头

  headers={

'Accept': 'application/json, text/javascript, */*; q=0.01',

'Accept-Encoding': 'gzip, deflate, br',

'Accept-Language': 'zh-CN,zh;q=0.9',

'Connection': 'keep-alive',

'Content-Length': '0',

'Cookie': Cookies,

'Host': 'www.5118.com',

'Origin': 'https://www.5118.com',

'Referer': 'https://www.5118.com/',

'User-Agent': ua,

'X-Requested-With': 'XMLHttpRequest',

}

自行添加ua和cooikes!

  当然这是一个完整的协议头,有些可以删掉,大家可以自己试试!

  2. zip函数的使用及格式化数据处理

  for keyword,rank,title,link,index_link in zip(keywords,ranks,titles,links,index_links):

data=[

keyword,

rank.xpath('string(.)').strip().replace(' ','').replace('\r\n','-'),

self.get_change(rank),

title,

unquote(link.split('target=')[-1]),

'https:{}'.format(index_link),

]

print(data)

  3.排名波动的处理

  通过源码查询可以知道,绿色表示排名上升,红色表示排名下降。这里有一个判断就搞定了!

  #判断排名是否提升

def get_change(self,rank):

rank=etree.tostring(rank).decode('utf-8')

if "red" in str(rank):

change="下降"

elif "green" in str(rank):

change = "提升"

else:

change = "不变"

return change

  4. 关键词 将数据写入csv

  写了一个案例,发现了两个参考案例

  import csv

#关键词数据写入csv

def write_keywords(self):

path='{}_keywords.csv'.format(self.file_name)

csvfile = open(path, 'a+')

for keyword in self.keyword_datas:

csvfile.write('%s\n' % keyword)

print("5118关键词搜索数据写入csv成功!")

#参考一

def write_csv(self):

path = "aa.csv"

with open(path, 'a+') as f:

csv_write = csv.writer(f)

data_row = ["1", "2"]

<p>

" />

csv_write.writerow(data_row)

# 参考二

def wcsv(self):

csvfile = open(&#39;csvtest.csv&#39;, &#39;w&#39;)

writer = csv.writer(csvfile)

writer.writerow([&#39;keywords&#39;])

data = [

(&#39;1&#39;, &#39;http://www.xiaoheiseo.com/&#39;, &#39;小黑&#39;),

(&#39;2&#39;, &#39;http://www.baidu.com/&#39;, &#39;百度&#39;),

(&#39;3&#39;, &#39;http://www.jd.com/&#39;, &#39;京东&#39;)

]

writer.writerows(data)

csvfile.close()

</p>

  5、查询网站相关关键词数据,写入excel表格

  使用第三方库, xlsxwriter

#数据写入excle表格

def write_to_xlsx(self):

workbook = xlsxwriter.Workbook(&#39;{}_search_results.xlsx&#39;.format(self.file_name)) # 创建一个Excel文件

worksheet = workbook.add_worksheet(self.file_name)

title = [&#39;关键词&#39;, &#39;排名&#39;, &#39;排名波动&#39;, &#39;网页标题&#39;, &#39;网页链接&#39;, &#39;长尾词链接&#39;] # 表格title

worksheet.write_row(&#39;A1&#39;, title)

for index, data in enumerate(self.data_lists):

num0 = str(index + 2)

row = &#39;A&#39; + num0

worksheet.write_row(row, data)

workbook.close()

print("5118搜索数据写入excel成功!")

  由于页码也是js生成的,所以没有找到,所以自己输入页码!

  输入查询网站的URL格式为:抓取后数据存储文件使用主域名!

  附上完整代码:

  #5118网站关键词数据获取

import requests

from lxml import etree

from urllib.parse import unquote

import xlsxwriter

import time

import csv

class C5118(object):

def __init__(self,url,nums):

self.keyword_datas=[]

self.data_lists=[]

self.index_links_hrefs=[]

self.headers={

&#39;Accept&#39;: &#39;application/json, text/javascript, */*; q=0.01&#39;,

&#39;Accept-Encoding&#39;: &#39;gzip, deflate, br&#39;,

&#39;Accept-Language&#39;: &#39;zh-CN,zh;q=0.9&#39;,

&#39;Connection&#39;: &#39;keep-alive&#39;,

&#39;Content-Length&#39;: &#39;0&#39;,

&#39;Cookie&#39;: Cookies,

&#39;Host&#39;: &#39;www.5118.com&#39;,

&#39;Origin&#39;: &#39;https://www.5118.com&#39;,

&#39;Referer&#39;: &#39;https://www.5118.com/&#39;,

&#39;User-Agent&#39;: UA,

&#39;X-Requested-With&#39;: &#39;XMLHttpRequest&#39;,

}

self.post_url=url

self.file_name=url.split(&#39;.&#39;)[1]

self.pagenums=nums

#判断排名是否提升

def get_change(self,rank):

rank=etree.tostring(rank).decode(&#39;utf-8&#39;)

if "red" in str(rank):

change="下降"

elif "green" in str(rank):

change = "提升"

else:

change = "不变"

return change

<p>

" />

#获取数据

def get_data(self,pagenum):

url="https://www.5118.com/seo/baidupc"

params={

&#39;isPager&#39;: &#39;true&#39;,

&#39;viewtype&#39;: &#39;2&#39;,

&#39;days&#39;: &#39;90&#39;,

&#39;url&#39;: self.post_url,

&#39;orderField&#39;: &#39;Rank&#39;,

&#39;orderDirection&#39;: &#39;asc&#39;,

&#39;pageIndex&#39;: pagenum, #页码

&#39;catalogName&#39;: &#39;&#39;,

}

response=requests.post(url,params=params,headers=self.headers)

time.sleep(1)

print(response.status_code)

doc=etree.HTML(response.content.decode(&#39;utf-8&#39;))

keywords= doc.xpath(&#39;//tr[@class="list-row"]/td[1]/a/text()&#39;) #关键词

print(keywords)

self.keyword_datas.extend(keywords)

ranks = doc.xpath(&#39;//tr[@class="list-row"]/td[2]/a&#39;) #排名

titles = doc.xpath(&#39;//tr[@class="list-row"]/td[5]/a/text()&#39;) #网页标题

links=doc.xpath(&#39;//tr[@class="list-row"]/td[5]/a/@href&#39;) #网页链接

index_links=doc.xpath(&#39;//tr[@class="list-row"]/td[7]/a/@href&#39;) #长尾词数量链接

self.index_links_hrefs.extend(index_links)

for keyword,rank,title,link,index_link in zip(keywords,ranks,titles,links,index_links):

data=[

keyword,

rank.xpath(&#39;string(.)&#39;).strip().replace(&#39; &#39;,&#39;&#39;).replace(&#39;\r\n&#39;,&#39;-&#39;),

self.get_change(rank),

title,

unquote(link.split(&#39;target=&#39;)[-1]),

&#39;https:{}&#39;.format(index_link),

]

print(data)

self.data_lists.append(data)

time.sleep(4)

return self.data_lists

#关键词数据写入csv

def write_keywords(self):

path=&#39;{}_keywords.csv&#39;.format(self.file_name)

csvfile = open(path, &#39;a+&#39;)

for keyword in self.keyword_datas:

csvfile.write(&#39;%s\n&#39; % keyword)

print("5118关键词搜索数据写入csv成功!")

#数据写入excle表格

def write_to_xlsx(self):

workbook = xlsxwriter.Workbook(&#39;{}_search_results.xlsx&#39;.format(self.file_name)) # 创建一个Excel文件

worksheet = workbook.add_worksheet(self.file_name)

title = [&#39;关键词&#39;, &#39;排名&#39;, &#39;排名波动&#39;, &#39;网页标题&#39;, &#39;网页链接&#39;, &#39;长尾词链接&#39;] # 表格title

worksheet.write_row(&#39;A1&#39;, title)

for index, data in enumerate(self.data_lists):

num0 = str(index + 2)

row = &#39;A&#39; + num0

worksheet.write_row(row, data)

workbook.close()

print("5118搜索数据写入excel成功!")

def main(self):

for i in range(1,self.pagenums+1):

print(f&#39;>>> 正在采集第{i}页关键词数据...&#39;)

self.get_data(i)

print("数据采集完成!")

self.write_keywords()

self.write_to_xlsx()

if __name__=="__main__":

url = "www.shejipi.com"

nums=100

spider=C5118(url,nums)

spider.main()

</p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线