鱼C论坛

 找回密码
 立即注册
查看: 1234|回复: 13

请问要爬这样的网站该从哪里突破?

[复制链接]
发表于 2018-10-5 14:03:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
连接:
https://www.homes.co.jp/realtor/hiroshima/hiroshima/list/?page=1

https://www.homes.co.jp/realtor/mid-111287hfEdaK_ZQLCw/

用request去请求后返回的是说浏览器没有启动JavaScript
那么请问这种网站该从何处下手呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-10-5 14:20:17 | 显示全部楼层
鱼C论坛的都精通八国语言的吗,,,,,你想要爬啥,你想说ajax动态加载的网页怎么爬吗?方法一,解析真实网址和参数(需要相关的知识储备),方法二,Selenium,(需要弄明白这个东西,难点会在浏览器和版本不匹配,各种bug)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-5 14:40:40 | 显示全部楼层
RIXO 发表于 2018-10-5 14:20
鱼C论坛的都精通八国语言的吗,,,,,你想要爬啥,你想说ajax动态加载的网页怎么爬吗?方法一,解析真实 ...

我是想要爬店名,地址,电话号码的。基本简单的爬虫我会写,这个也不是ajax的动态页面。一眼看上去是个静态页面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-5 16:19:36 | 显示全部楼层
chobi 发表于 2018-10-5 14:40
我是想要爬店名,地址,电话号码的。基本简单的爬虫我会写,这个也不是ajax的动态页面。一眼看上去是个静 ...

呃,那么难点在哪里啊,不是挨个爬取进入详情页的网址然后爬取详细的店名,地址,电话,不久好了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-5 16:24:07 | 显示全部楼层
RIXO 发表于 2018-10-5 16:19
呃,那么难点在哪里啊,不是挨个爬取进入详情页的网址然后爬取详细的店名,地址,电话,不久好了吗?
  1. import requests
  2. from bs4 import BeautifulSoup

  3. urls = "https://www.homes.co.jp/realtor/hiroshima/hiroshima/list/?page=1"
  4. content = requests.get(urls).content
  5. soup = BeautifulSoup(content, 'html.parser')
  6. print(soup)
复制代码


<h2 style="margin-top: 0;">リクエストがブロックされました!</h2>
<p>あなたのリクエストがボットからのアクセスと判断されました

帮你翻译一下,请求被禁止,你的请求被判断为由bot发起的。

你可以直接试试看。要是这么简单我就不来麻烦大家了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-5 17:02:17 | 显示全部楼层
RIXO 发表于 2018-10-5 14:20
鱼C论坛的都精通八国语言的吗,,,,,你想要爬啥,你想说ajax动态加载的网页怎么爬吗?方法一,解析真实 ...

搞了一圈,打算还是要用Selenium
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-5 17:24:10 | 显示全部楼层
chobi 发表于 2018-10-5 17:02
搞了一圈,打算还是要用Selenium

呃,我找到了是他cookie里面的一个值      _atrk_sessidx   的原因     这个网站限制了session访问次数,因此用Selenium不一会也会被封的,只有不断的重新申请session  id      才可以绕过限制,然后在cookie里面把 _atrk_sessidx =1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-6 16:20:09 | 显示全部楼层
我爬出来了。  
  1. import requests
  2. import re
  3. from bs4 import BeautifulSoup as bs

  4. # 打开网页函数
  5. def get_response(url):
  6.     headers = {
  7.         'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  8.         'Accept-Encoding': 'gzip, deflate, br',
  9.         'Accept-Language': 'zh-CN,zh;q=0.9',
  10.         'Cache-Control': 'no-cache',
  11.         'Connection': 'keep-alive',
  12.         'Cookie':'xxxx',

  13.         'Pragma': 'no-cache',
  14.         'Referer': 'https://www.homes.co.jp/realtor/hiroshima/hiroshima/list/?page=1',
  15.         'Upgrade-Insecure-Requests': '1',
  16.         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'

  17.         }
  18.     params = {'page': '1'}
  19.     response = requests.get(url, headers=headers,params=params) # 加上浏览器头,以防被禁
  20.     response.encoding = 'utf-8'      # 指定编码格式
  21.     #response.encoding = 'gbk'      # 指定编码格式
  22.     return response

  23. def main():
  24.     base_url = 'https://www.homes.co.jp/realtor/hiroshima/hiroshima/list/?page=1'
  25.     response = get_response(base_url)
  26.     #print(response.text)
  27.     soup = bs(response.text,'lxml')

  28.     items = {}
  29.     #print(soup.select('.wrap-realtorList'))
  30.     for item in soup.select('.wrap-realtorList'):
  31.         items['title'] = item.select('.mod-realtorBuilding .heading')
  32.         print(items['title'])

  33. if __name__ == "__main__":
  34.     main()
复制代码

那个饼干就用xxxx代替了。  
发饼干的英文需要审核。  
问题在于你需要更多的header和一个params参数才能获取到数据。  
还有,这个网站反爬很厉害,像楼上所说的限制了session访问次数。  
并且,饼干经常变化,找不到规律。  
  
你可以用隐身窗口打开这个网站获取饼干。  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-6 16:30:38 | 显示全部楼层
如果用Selenium的话,由于我没有去测试,不知道这个网站检不检查来源IP这个方面。   
如果该网站没有检查IP的话。  
可以用Selenium去撞它 。  
由于Selenium打开一个窗口是默认的隐身窗口  
在数据获取部分写一个try方法。
  
能获取数据就获取,  

不能呢个获取数据就关闭浏览器,  
再重新打开浏览器来请求该网址。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-6 18:39:40 From FishC Mobile | 显示全部楼层
wongyusing 发表于 2018-10-6 16:30
如果用Selenium的话,由于我没有去测试,不知道这个网站检不检查来源IP这个方面。   
如果该网站没有检查 ...

兄弟可以呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-6 19:39:56 | 显示全部楼层

运气而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-7 11:00:44 | 显示全部楼层
wongyusing 发表于 2018-10-6 16:30
如果用Selenium的话,由于我没有去测试,不知道这个网站检不检查来源IP这个方面。   
如果该网站没有检查 ...

试了一下。selenium开了两次页面就被ban了。应该是查了ip的。现在来我正常访问网页也被ban了。这网站真的有点厉害。我都想放个有偿任务去坑一下同行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 11:35:55 | 显示全部楼层
chobi 发表于 2018-10-7 11:00
试了一下。selenium开了两次页面就被ban了。应该是查了ip的。现在来我正常访问网页也被ban了。这网站真的 ...

你试一下,刷新页面,
昨天,我用隐身窗口打开的话,第一次是看不了页面的,要刷新一下才能看到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-7 19:09:05 | 显示全部楼层
本帖最后由 chobi 于 2018-10-7 19:15 编辑
wongyusing 发表于 2018-10-7 11:35
你试一下,刷新页面,
昨天,我用隐身窗口打开的话,第一次是看不了页面的,要刷新一下才能看到

试过了。截图如下。被ban了
看来这个难度真的有点高。。。
除非能伪装成Googlebot,但是这个超出了我的知识范围
屏幕快照 2018-10-07 上午5.20.05.png
屏幕快照 2018-10-07 上午5.20.05.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 05:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表