惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
The Last Watchdog
The Last Watchdog
TaoSecurity Blog
TaoSecurity Blog
Schneier on Security
Schneier on Security
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
O
OpenAI News
W
WeLiveSecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
P
Privacy & Cybersecurity Law Blog
K
Kaspersky official blog
S
Security @ Cisco Blogs
Latest news
Latest news
AWS News Blog
AWS News Blog
U
Unit 42
Martin Fowler
Martin Fowler
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Scott Helme
Scott Helme
博客园 - 司徒正美
B
Blog RSS Feed
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker
Google Online Security Blog
Google Online Security Blog
Jina AI
Jina AI
aimingoo的专栏
aimingoo的专栏
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Last Week in AI
Last Week in AI
月光博客
月光博客
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
小众软件
小众软件

PixelNest

会议是效率的杀手 国庆出游记录 对居家办公的一些想法 2022 春节 《搏击俱乐部》的结局 纪念 PAI 头一回达到 100 卡片笔记法 《刑法学讲义》的部分摘录 迁移博客 《UNIX 传奇》摘录 就地过年 一点记录:docker-compose 编排不同项目间的网络 近期读的几本书 办新身份证 git 获取其他分支的单个文件或目录 我的高考成绩 推荐 2020 年上半年的 8 部影视作品 ChromeOS 开发者模式 终于下单了《守望者》 联通来电管家服务 一些实用的 bash 代码片段 关于 鸟枪换炮 《架构整洁之道》摘录 惨淡的星球大战 旧笔记本电脑 if...then... 命令行检测 SSL 证书过期时间 《程序员的职业素养》读书笔记 2019 国庆假期 在 Ubuntu 里按空格键预览 《基本穿搭》笔记 我在 Ubuntu 里安装的一些软件 让人郁闷的英语学习过程 色彩理论基础 两部电视剧 《历史的教训》摘录 新工具 Koa 获取客户端 IP 备案了 apiDoc 基础语法 《代码整洁之道》摘录 BBC 纪录片 《逻辑的乐趣》 读不下去的《原则》 蓝牙鼠标唤醒休眠的 Ubuntu Google 发布会 2018 国庆假期 开发者的时间追踪和统计 使用 curl 发送 POST 请求的几种方式 《重来 2》读书笔记 Linux 和 MacOS 命令行转换图片用法整理 《Go 语言实战》笔记 Win10 微软拼音添加小鹤双拼以及其他配置 针对不同场景临时禁用 eslint 规则的方法 《好妈妈胜过好老师》读书笔记 配置 Win10 Linux 子系统作为开发环境 又读完一本尤·奈斯博的小说 近期写 Go 的一点语法碎片整理 ffmpeg 合并 MP4 M4A 文件 睡前看手机的大问题 《局外人》读书笔记 菊次郎与佐纪 读书笔记 3 菊次郎与佐纪 读书笔记 2 菊次郎与佐纪 读书笔记 1 豆瓣图片服务器防盗链 《如何有效阅读一本书》读书笔记 - 3 《如何有效阅读一本书》读书笔记 - 2 《如何有效阅读一本书》读书笔记 - 1 Vim iskeyword 济南 图个乐 开始看不懂《西部世界》了 剧透 听到几个好故事 过周末 相亲 让人失望的 Apple 悬疑故事 AI 记忆 世纪三部曲 上帝的梦
向百度主动推送网站链接
2019-07-10 · via PixelNest

百度站长工具提供了三种自动提交链接的方法,分别是主动推送、自动推送和 sitemap。

填 sitemap 最方便,但是效果很差。我提交的 sitemap 的最后抓取时间是 2019-06-22,已经有半个多月没有抓取,即使我去后台点击「手动更新文件」也无济于事,其状态一直是「等待」。

自动推送需要在页面上添加由百度提供的一段 JS。这种办法至少有以下缺点:

  • 让页面体积变大
  • 这段 JS 代码可能会被浏览器扩展屏蔽
  • 这段 JS 代码来自百度

只好再尝试主动推送了

今天无奈地写了一个脚本,向百度主动推送网站的各个 URL。实际上所有 URL 还是来自网站的 sitemap。

#!/bin/bash

set -o errexit

BAIDU_URL="http://data.zz.baidu.com/urls"
BAIDU_TOKEN="XXXXXXXXXXX" # replace with your own token

CURL="/usr/bin/curl"
XMLLINT="/usr/bin/xmllint"
URL_TEMP=$(mktemp /tmp/url_XXXXXXXXX)
XML_TEMP=$(mktemp /tmp/xml_XXXXXXXXX)

function green {
  local green="\033[0;32m"
  local end="\033[0m"
  echo -e -n "${green}${1}${end}"
}

function download {
    local website=$1
    local xml_url="$website/sitemap.xml"
    green "downloading $xml_url..."
    $CURL "$xml_url" > "$XML_TEMP" 2>/dev/null
    green "done\n"
}

function push {
    local website=$1
    local count=0
    count=$(wc -l "$URL_TEMP" | awk '{print $1}')
    if [[ $count -gt 0 ]]; then
        green "pushing $count urls to baidu\n"
        $CURL -H 'Content-Type:text/plain' --data-binary @"$URL_TEMP" "${BAIDU_URL}?site=${website}&token=${BAIDU_TOKEN}"
    else
        echo "nothing to push"
    fi
}

function parse {
    local file=$1
    $XMLLINT --format "$file" | grep loc | cut -d '>' -f2 | cut -d ' "$URL_TEMP"
}

function protocol {
    local website=$1
    if [[ ${website:0:4} != "http" ]]; then
        echo "https://$website"
    else
        echo "$website"
    fi
}

function clean {
    rm "$XML_TEMP"
    rm "$URL_TEMP"
    echo ""
    green "byebye"
    echo ""
}

function main {
    local website=$1
    if [[ "x$website" = "x" ]]; then
        echo "no website"
        exit -1
    fi
    website=$(protocol "$website")
    echo "website: $website"
    download "$website"
    parse "$XML_TEMP"
    push "$website"
    clean
}

main "$@"

写了那么多,其实核心就是使用 xmllint 那句,把 URL 从 XML 文件中取出来。本想用 xpath 直接获取 sitemap.xml 里的各个链接内容,摸索了半个小时也没弄成,索性改成粗暴的做法,也就是现在脚本里由管道串起来的一个个 grep 和 cut 命令。

百度站长工具的「主动推送」有推送数据、更新数据和删除数据三个接口,我这个博客的链接并不多,所以我只用了推送数据这一个接口,每次都推全量的 URL。

做主动推送的主要原因是这个博客在百度的收录量太少,而这个「主动推送」呢,也只是死马当活马医。

当前,2019 年 7 月 9 日,这个博客在百度的收录(站长工具后台查看)仅仅是 70 左右,在百度搜索 site:ifttl.com 有 52 个结果,而在 Google 和 Bing 的搜索结果分别有 245 和 148 个。

最后差点忘了,在 crontab 里加上一条,每天定时往百度 push 一把。

05 10 * * * /path/to/the/script/push_to_baidu.sh ifttl.com > /dev/null 2>&1