解决方案:最简单的方法,优采云 采集后直接导入到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');
替换:数据库名称 -> 你的数据库名称
对于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('csvtest.csv', 'w')
writer = csv.writer(csvfile)
writer.writerow(['keywords'])
data = [
('1', 'http://www.xiaoheiseo.com/', '小黑'),
('2', 'http://www.baidu.com/', '百度'),
('3', 'http://www.jd.com/', '京东')
]
writer.writerows(data)
csvfile.close()
</p>
5、查询网站相关关键词数据,写入excel表格
使用第三方库, xlsxwriter
#数据写入excle表格
def write_to_xlsx(self):
workbook = xlsxwriter.Workbook('{}_search_results.xlsx'.format(self.file_name)) # 创建一个Excel文件
worksheet = workbook.add_worksheet(self.file_name)
title = ['关键词', '排名', '排名波动', '网页标题', '网页链接', '长尾词链接'] # 表格title
worksheet.write_row('A1', title)
for index, data in enumerate(self.data_lists):
num0 = str(index + 2)
row = 'A' + 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={
'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',
}
self.post_url=url
self.file_name=url.split('.')[1]
self.pagenums=nums
#判断排名是否提升
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
<p>
" />
#获取数据
def get_data(self,pagenum):
url="https://www.5118.com/seo/baidupc"
params={
'isPager': 'true',
'viewtype': '2',
'days': '90',
'url': self.post_url,
'orderField': 'Rank',
'orderDirection': 'asc',
'pageIndex': pagenum, #页码
'catalogName': '',
}
response=requests.post(url,params=params,headers=self.headers)
time.sleep(1)
print(response.status_code)
doc=etree.HTML(response.content.decode('utf-8'))
keywords= doc.xpath('//tr[@class="list-row"]/td[1]/a/text()') #关键词
print(keywords)
self.keyword_datas.extend(keywords)
ranks = doc.xpath('//tr[@class="list-row"]/td[2]/a') #排名
titles = doc.xpath('//tr[@class="list-row"]/td[5]/a/text()') #网页标题
links=doc.xpath('//tr[@class="list-row"]/td[5]/a/@href') #网页链接
index_links=doc.xpath('//tr[@class="list-row"]/td[7]/a/@href') #长尾词数量链接
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('string(.)').strip().replace(' ','').replace('\r\n','-'),
self.get_change(rank),
title,
unquote(link.split('target=')[-1]),
'https:{}'.format(index_link),
]
print(data)
self.data_lists.append(data)
time.sleep(4)
return self.data_lists
#关键词数据写入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成功!")
#数据写入excle表格
def write_to_xlsx(self):
workbook = xlsxwriter.Workbook('{}_search_results.xlsx'.format(self.file_name)) # 创建一个Excel文件
worksheet = workbook.add_worksheet(self.file_name)
title = ['关键词', '排名', '排名波动', '网页标题', '网页链接', '长尾词链接'] # 表格title
worksheet.write_row('A1', title)
for index, data in enumerate(self.data_lists):
num0 = str(index + 2)
row = 'A' + num0
worksheet.write_row(row, data)
workbook.close()
print("5118搜索数据写入excel成功!")
def main(self):
for i in range(1,self.pagenums+1):
print(f'>>> 正在采集第{i}页关键词数据...')
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>