seo关键解码:网站营销与搜索引擎优化(百度输入关键词搜索出现的列表页是哪家的呢?)

优采云 发布时间: 2022-01-06 08:21

  seo关键解码:网站营销与搜索引擎优化(百度输入关键词搜索出现的列表页是哪家的呢?)

  在百度中输入关键词,搜索出现的列表页面。2013年开始点击目标链接,百度地址就是重定向时的百度地址。百度解析后,果然跳转到了目标页面。360比较简单,在python中稍微处理一下就可以得到搜索结果的真实URL链接。

  在 SEO 中,经常需要对 网站 来自哪一个进行很好的排名。就在最近,我需要获取一些数据。遇到这样的问题,不想每天手动去点。可以使用以下方法获取目标地址。

  http://www.baidu.com/link?url=XyACAP-IHMK2wGbiKeQlE2uNUBqvTW25Ncog8p6irHC&wd=&eqid=b294bdf100009b3b00000005590ac8c7

  http://www.so.com/link?url=http%3A%2F%2Fwww.hekaiyu.cn%2F&q=%E5%BC%80%E6%B0%B4%E7%BD%91%E7%BB%9C&ts=1493879032&t=38cfd50ae746259682fded99eda3939&src=haosou

  模拟请求获取百度真实地址

  这个速度有点慢,就是先请求加密链接,最后得到真实的URL。

  import requests

r = requests.get(target_url)

return r.url

  这种方法现在不太好用。当我在做一个项目时,我发现它偶尔是可能的。下面的方法类大概只是部分或者随机的302转(猜想),更多的返回200.状态。

  根据位置获取百度真实网址

  单击搜索结果的加密链接后,将向该链接发送 GET。百度的这些连接大部分都被重定向了(http 302),真实的URL已经收录在服务器的回复中了。

  

  response = urllib2.urlopen(target_url)

realurl = response.geturl()

print(realurl)

  获取200状态下的真实链接

  搜索结果链接返回200,这个页面通过js重定向到真实链接,刷新。对于百度爬取的加密网址,在做requests.get()(allow_redirects=False)时是不允许重定向的。这时候就需要去200页面提取真实连接了。

  tmpPage = requests.get(tmpurl[0], allow_redirects=False)

urlMatch = re.search(r'URL=\'(.*?)\'', tmpPage.text.encode('utf-8'), re.S)

print urlMatch

  就是这样,比较完整的判断http状态码,做相应的处理。

   for tmpurl in tmpURLs:

tmpPage = requests.get(tmpurl, allow_redirects=False)

if tmpPage.status_code == 200:

urlMatch = re.search(r'URL=\'(.*?)\'', tmpPage.text.encode('utf-8'), re.S)

originalURLs.append((urlMatch.group(1), tmpurl[1]))

elif tmpPage.status_code == 302:

originalURLs.append((tmpPage.headers.get('location'), tmpurl[1]))

else:

print 'No URL found!!'

  Python解码URL获取360搜索结果的链接

  Url 编码是浏览器用来打包表单输入的一种格式。360搜索结果中收录的网站 url解释了url编码。Url 的编码格式是 ASCII,而不是 Unicode,也就是说 Url 中不能收录任何非 ASCII 字符。我们需要对其进行解码以方便后续使用。当我们使用regular获取360连接时,我们可以直接用urllib进行解码。

  url = urllib.unquote(target_url)

print url

  先不说搜狗。搜狗的采集做了一个特别的工作。跑一百遍也跑不了,开水还没冲破。当然,百度有更简单的获取方式,有空再说吧!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线