网址导航网首页

嗨,欢迎来到25Qi网址导航

站长QQ:2598903095

SEO学习

python自动发布文章到wordpress

时间:2021-08-12 丨 作者:SEO 丨 关键词:python   wordpress

解决思路
1,利用post向WordPress提交表单
2,通过wordpress_XMLrpc模块,有轮子不用想干啥
3,通过mysqldb直接插入数据库,有服务器、不需远程,直接把py脚本放在服务器跑

我们这次要用轮子拼一台摩托车!,宝马、、自己动手吧

开始动手:需自行安装的模块requests,xmlrpc;Windows系统、linux安装如下,土豪随意:
pip install requests
pip install python-wordpress-xmlrpc

caiji.py

#encoding=utf-8'''练手可以找wp博客来采集,这个脚本就是针对wp博客来做下手采集的'''import re,requests,time,random,urllib,threading,threadpoolfrom wordpress_xmlrpc import Client, WordPressPostfrom wordpress_xmlrpc.methods.posts import GetPosts, NewPost'''登录'''try:    wp=Client('https://www.example.com/xmlrpc.php','wp的账号','wp的密码')except Exception, e:    wp=Client('https://www.example.com/xmlrpc.php','wp的账号','wp的密码')post=WordPressPost()'''针对单站url重复采集问题'''f=open('url.txt','a+')urls=f.read()url_list=[m.strip() for m in open('url.txt').readlines()]daili_list=[]'''过滤html标签'''def filter_tags(htmlstr):    re_cdata=re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA    re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script    re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style    re_br=re.compile('<br\s*?/?>')#处理换行    re_br=re.compile('<br />')    re_h=re.compile('</?\w+[^>]*>')#HTML标签    re_comment=re.compile('<!--[^>]*-->')#HTML注释    s=re_cdata.sub('',htmlstr)#去掉CDATA    s=re_script.sub('',s) #去掉SCRIPT    s=re_style.sub('',s)#去掉style    s=re_br.sub('\n',s)#将br转换为换行    s=re_h.sub('',s) #去掉HTML 标签    s=re_comment.sub('',s)#去掉HTML注释    blank_line=re.compile('\n+')#去掉多余的空行    s=blank_line.sub('\n',s)    return s'''轮换user-agent'''def getUA():    uaList = [    'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+TencentTraveler)',    'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729)',    'Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1',    'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)',    'Mozilla/5.0+(Windows+NT+6.1;+rv:11.0)+Gecko/20100101+Firefox/11.0',    'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+SV1)',    'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB7.1;+.NET+CLR+2.0.50727)',    'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+KB974489)',    'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',    'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',    ]    ua = random.choice(uaList)    return ua'''提取正则'''def search(re_url,html):    re_Data=re.findall(re_url,html)    if re_Data:        return re_Data[0]    else:        return 'no''''轮换ip'''def ip():    for x in open('daili.txt'):        x = x.strip()        daili_list.append(x)    newip = random.choice(daili_list)    return newip'''获取html'''def gethtml(url,headers):    while 1:        try:            newip=ip()              proxies={"http":"https://%s"%newip.strip()}              pages=requests.post(url,headers,proxies,timeout=10)            html=pages.content            code=pages.status_code            if '404' '302 Found' in html or code != 200 in html:                print u'代理失效重试'                continue            elif 'verify' in html:                print u'出验证码,重试'                continue            else:                return html        except Exception, e:            # print e            continue'''正则用以提取列表页上的url,需根据实际情况来调整'''re_url=re.compile(r'<a href="(https://www\.example\.com/.*?\d+\.html)"')'''正则用以提取内页上的title和正文内容content,当然也可以使用readability模块,正则需根据实际情况做修改'''re_title_content=re.compile(r'<h1 class="entry-title">(.*?)</h1>[\s\S]*?<div class="entry-content">([\s\S]*?)<div class="clear">')'''成功通过wordpress-xmlrpc模块自动发布文章到wordpress'''def getData(url):    headers={'User-Agent':'%s'%getUA(),}      mutex.acquire()    html=gethtml(url,headers)    re_Data=re.findall(re_url,html)        for i in re_Data:        i=i.strip()        if i not in url_list and i not in urls:            page=gethtml(i,headers)            page_Data=re.findall(re_title_content,page)            for n in page_Data:                # print type(n)                try:                    title=n[0]                    content=filter_tags(n[1]) `                except:                    title=0                    content=0            if title and content:                print title,content                '''发布到wp'''                # post.title=title                # post.content=content                # post.post_status = 'publish'                # wp.call(NewPost(post))                url_list.append(i)                                f.writelines(i+'\n')                print 'Updates'            else:                pass        else:            print 'Noposts updates'            continue           mutex.release()def now_time(url):    for i in url_list:        getData(i)url_list = []for line in range(1,12):    line = 'https://www.example.com/page/%d'%line    word = line.strip()    url_list.append(word)mutex = threading.Lock()pool = threadpool.ThreadPool(3)reqs = threadpool.makeRequests(now_time, url_list)[pool.putRequest(req) for req in reqs]pool.wait()

设置采集内容到哪个默认目录,可以在wp后台设置,从代码上做修改也可以;具体可以看看xmlrpc官方文档:https://python-wordpress-xmlrpc.readthedocs.io/en/latest/overview.html

另外可以通过命令crontab -e 让脚本按需自动跑起来!

在线随机小姐姐图片换一批
最新收录
  • 黄飞鸿热炙理疗

    黄飞鸿热灸馆加盟项目,整店输出模式,专业热灸加盟技术培训,一个专业做中医养生的连锁品牌。源自黄飞鸿的嫡孙继承了黄飞鸿先生的遗志,多年来一直坚定不移地致力于大健康产业,并创立了黄飞鸿热灸馆;主要业务服务有黄飞鸿热炙理疗,黄飞鸿热炙理疗馆加盟,黄飞鸿理疗馆,黄飞鸿热灸,黄飞鸿养生馆加盟,黄飞鸿养生馆加盟,黄飞鸿热灸馆,黄飞鸿热灸体验馆,黄飞鸿热灸馆加盟,黄飞鸿热灸理疗馆,黄飞鸿热灸膏

  • tp钱包

    TokenPocket钱包支持数字资产存储。每天走势掌握,功能强大,在线管理数字货币,超多币种推送,多种交易方式,私钥用户自持且轻便易用的以太坊轻钱包。tp支持多资产类型,如:TokenPocket、ETH、QTUM、AE、BTM等大多数主流币种,让tp钱包更好地融入你的生活。

  • 浙江丰安齿轮股份有限公司

    浙江丰安齿轮股份有限公司成立于1999年1月,是一家集开发、设计、制造、销售服务为一体的齿轮专业制造商,占地面积93亩,总资产3亿余元,主要设备400余台。公司于2017年1月在“新三板”挂牌,股票代码870508。公司以精湛的技术、过硬的品质、优良的服务来赢得客户满意,努力打造业界一流齿轮制造企业。

  • 浙江中孚环境设备股份有限公司

    我公司系高新技术企业,专业从事空气净化的产品生产、工程服务及洁净技术的应用与研究,提供从空调处理设备、空调自动控制系统到洁净室系统全面服务,为各类工业用空气处理提供一揽子解决方案及交钥匙工程。   产品遍及全国几十个省市,并出口至巴基斯坦、伊朗等国家。我公司在化纤工艺空调领域精耕细作20余年,2001年进入医药、电子等行业的净化空调设备。   本公司拥有雄厚的技术力量和良好的售后服务,承接系统设计、技术咨询、产品制造、技术改造等项目。设备采用工业计算机、可编程序(PLC)控制器、数字直接控制器(DDC)等智能控制器,可实现节能显著的运行系统(节能策略有:新回风的焓值控制、二次回风、送风机的变频调速;非露点控制方案在过渡季节节能50%。在化纤纺丝行业采用的节能措施,同样可在医药行业的净化空调上使用);采用与国际惯例接轨的CAD设计和质量保证体系。

  • 江苏双友智能装备科技股份有限公司

    双友科技为客户提供直缝埋弧焊管生产线、直缝高频焊管生产线、螺旋埋弧焊管生产线、钢管内外防腐生产线,石油套管生产线,热处理生产线以及其他系列产品。同时公司致力于为高端铝业服务,为客户提供更为高效,节能,环保,安全的铸铝生产线及其相关设备。公司积极推进国际化发展战略,逐步实现品牌、市场、团队、技术、管理与国际化标准接轨。此外,公司与众多国际知名管材和铝材生产商建立了紧密的合作关系,在中东设立了海外分支机构。双友科技旨在将中国的高端制造带给世界。

  • 南京三超新材料股份有限公司

    南京三超新材料股份有限公司成立于1999年1月,注册资本9360万元,2017年4月21日,在深圳创业板成功挂牌上市。占地面积130亩,建筑面积约86,000平方米。是一家专业从事金刚石、立方氮化硼工具的研发、生产与销售的高新技术企业,现拥有金刚石砂轮和金刚石线两大类相互协同的产品系列,应用于硅、蓝宝石、石英、铁氧体、钕铁硼、陶瓷、玻璃、硬质合金等硬脆材料的精密切割、磨削与抛光。 公司自成立以来,始终坚持"以人为本、技术优先"的发展理念,先后引入多名外籍专家,并在日本成立了超硬材料工具的专业研发机构。经过多年研发,公司成为国内最早通过自主研发掌握金刚线制造的相关技术,成功实现产业化的企业之一,并且打破了国外企业的技术垄断,与新研发成功的硅片背面减薄砂轮、硅片倒角砂轮、PAD修整器等产品,为半导体及太阳能光伏行业提供了优质的金刚石工具,并凭借良好的品质与高性价比,赢得了众多实力用户认可,在国内形成了较高的行业影响力。