如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

2024-04-27

1. 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

总结一下,解决办法:
换供应商,这个方案不是很靠谱,github 还是很好用的
让 github 改,这个也很难
利用 CDN 加速 ,这个方案可行!


Github是通过 UA 来判定百度爬虫并返回 403 Forbidden 的。而百度爬虫的 UA 一般是这样的:
Mozilla/5会 ping 到 209.9.130.8 节点
好了,细心的同学应该已经发现问题所在了,百度爬虫大部分的请求被导到了 209.9.130.6 节点,但是这个节点上没有页面的缓存!!如果百度爬虫是某个页面的第一个访问者,CDN 的边缘服务器会用百度爬虫的 UA 去请求 Github 的服务器,得到的结果自然是被拒绝了。
最终我们得到了通过 CDN 来解决这个问题的必要条件:你的博客必须有巨大的访问量!这样才能保证 CDN 的每一个边缘服务器上都有任何一个页面的缓存。

如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

2. 求用Python编写的一个简单的网络爬虫,跪求!!!!

#爬虫的需求:爬取github上有关python的优质项目#coding=utf-8import requestsfrom bs4 import BeautifulSoupdef get_effect_data(data):    results = list()    soup = BeautifulSoup(data, 'html.parser')    # print soup    projects = soup.find_all('div', class_='repo-list-item d-flex flex-justify-start py-4 public source')    for project in projects:        # print project,'----'        try:            writer_project = project.find('a', attrs={'class': 'v-align-middle'})['href'].strip()            project_language = project.find('div', attrs={'class': 'd-table-cell col-2 text-gray pt-2'}).get_text().strip()            project_starts = project.find('a', attrs={'class': 'muted-link'}).get_text().strip()            update_desc = project.find('p', attrs={'class': 'f6 text-gray mr-3 mb-0 mt-2'}).get_text().strip()            # update_desc=None            result = (writer_project.split('/')[1], writer_project.split('/')[2], project_language, project_starts, update_desc)            results.append(result)        except Exception,e:            pass    # print results    return resultsdef get_response_data(page):    request_url = 'https://github.com/search'    params = {'o': 'desc', 'q': 'python', 's': 'stars', 'type': 'Repositories', 'p': page}    resp = requests.get(request_url, params)    return resp.textif __name__ == '__main__':    total_page = 1 # 爬虫数据的总页数    datas = list()    for page in range(total_page):        res_data = get_response_data(page + 1)        data = get_effect_data(res_data)        datas += data    for i in datas:        print i

3. 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

总结一下,解决法:换供应商,这个方案不是很靠谱,github还是很好用的让github改,这个也很难利用CDN加速,这个方案可行!Github是通过UA来判定百度爬虫并返回403Forbidden的。而百度爬虫的UA一般是这样的:Mozilla/5会ping到

如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

4. 从GitHub下载的scrapy怎么运行

先cd到该项目的目录
这个项目中reviews/spiders/test.py定义了ReviewsSpider类,spider名为amazon,所以启动这个爬虫的命令:
scrapy crawl amazon而想存储为csv格式,只需加两个参数:
scrapy crawl amazon -t csv -o output.csv或者:
scrapy crawl amazon --output-format=csv --output=output.csv当然,你还可以在settings里加两条启用exporter,也可以达到目的:
FEED_URI = '/this/is/a/file/path'FEED_FORMAT = 'csv'
还有,这个项目的README已经回答了你的问题。。。

5. 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

作者:EZLippi链接:https://www.zhihu.com/question/30898326/answer/86757548来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
既然不想放弃Github,唯一的办法就是不让百度爬虫直接抓取GIthub的内容,而是抓取自己网站的一个镜像,将网站的内容镜像到gitcafe,步骤如下:
注册 gitcafe 帐号
创建一个跟用户名一样的项目,比如我的https://gitcafe.com/ezlippi/ezlippi
把 github 的项目推到 gitcafe 上面去,步骤如下:
git remote add gitcafe https://gitcafe.com/ezlippi/ezlippi.gitgit checkout -b gitcafe-pages切换到一个新分支 'gitcafe-pages'git push gitcafe master:gitcafe-pagesUsername for 'https://gitcafe.com':ezlippi Password for 'https://ezlippi@gitcafe.com'Counting objects: 17, done.Delta compression using up to 4 threads.Compressing objects: 100% (10/10), done.Writing objects: 100% (10/10), 1.06 KiB | 0 bytes/s, done.Total 10 (delta 8), reused 0 (delta 0)To https://gitcafe.com/ezlippi/ezlippi.gitf0d0296..51611d7  master -> gitcafe-pages
gitcafe绑定自己的域名
点击项目的右上角的 项目配置
在项目的 基础设置 中配置项目主页
在 page服务 中添加自己的域名,比如我这里是http://coolshell.info和http://www.coolshell.info.
DNS的配置中增加一项 CNAME.
我使用 dnspod 这个提供商来管理DNS.CNAME一般可以按解析路线或者网络类型来单独配置,网络类型选择国内或者联通,设置之后等待一段时间百度的抓取就 恢复正常了,如下图所示

如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

6. 怎么在github上找到我需要的代码程序

首先你需要到git上面注册一个账号,然后你就按照下面的方法做:
在输入框里面输入你要搜所项目的英文形式,,输入完之后按enter键进行搜索!
比如你要搜索PHP项目,,你就输入PHP  project 
亲!如果你感觉有用请采纳,谢谢!!

7. 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

总结一下,解决办法:
换供应商,这个方案不是很靠谱,github 还是很好用的
让 github 改,这个也很难
利用 CDN 加速 ,这个方案可行!


Github是通过 UA 来判定百度爬虫并返回 403 Forbidden 的。而百度爬虫的 UA 一般是这样的:
Mozilla/5会 ping 到 209.9.130.8 节点
好了,细心的同学应该已经发现问题所在了,百度爬虫大部分的请求被导到了 209.9.130.6 节点,但是这个节点上没有页面的缓存!!如果百度爬虫是某个页面的第一个访问者,CDN 的边缘服务器会用百度爬虫的 UA 去请求 Github 的服务器,得到的结果自然是被拒绝了。
最终我们得到了通过 CDN 来解决这个问题的必要条件:你的博客必须有巨大的访问量!这样才能保证 CDN 的每一个边缘服务器上都有任何一个页面的缓存。

如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

8. 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题

  换供应商,这个方案不是很靠谱,github 还是很好用的
  让 github 改,这个也很难
  利用 CDN 加速     √ 这个方案可行!

      我以前就是用 CDN 加速的,所以我的百度索引量还不错,也就没在意。
后来 github pages 官方架设了 CDN,国内用户访问会直接访问澳洲的 CDN,速度还不错,所以我就取消了自己的 CDN 配置。