鱼C论坛

 找回密码
 立即注册
查看: 1300|回复: 7

[已解决]爬虫求助

[复制链接]
发表于 2018-11-5 17:09:27 | 显示全部楼层 |阅读模式
40鱼币
写爬虫第一次遇到这种情况
  1. class DIN:
  2.     def __init__(self):
  3.         self.url = 'https://www.din.de/en'
  4.         self.session = requests.Session()
  5.         self.headers = {
  6.             'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6756.400 QQBrowser/10.3.2473.400',
  7.             'Host': 'www.din.de',
  8.         }
  9.         self.get_url()

  10.     def get_url(self):
  11.         with self.session.get(url=self.url, headers=self.headers) as response:
  12.             soup = BeautifulSoup(response.text, 'lxml')
  13.         print(soup)

  14. if __name__ == '__main__':
  15.     DIN()
复制代码


body是空的,head里面出现【<noscript>Please enable JavaScript to view the page content.<br/>Your support ID is:  9356778754779032908.</noscript>】
但是我抓包并没有发现重定向,并且response是一次返回。难不成整个页面都是用js渲染出来的么?
想了解一下原理,求爬虫大佬帮忙指点一下
最佳答案
2018-11-5 17:09:28
本帖最后由 wongyusing 于 2018-11-5 23:56 编辑

怎么说好呢??  
首先,你并没有获取到真正的网页源代码的原因是。  
当你请求这个网页的时候,它会向你发送一个曲奇(英文,直接发英文会被审核)  
然后再把你重定向到真正的网页。  
注意,这个网页的曲奇是会你的操作变化而变化的
会不断地ajxa后端来更换曲奇。
可以说,反爬措施很强
建议直接用seleium吧
用requests也可以,但是很麻烦。要不断的请求ajxa请求后端来获取曲奇

总的来说,你请求的header不完整

至于你为什么抓包的时候没有发现重定向是因为你的浏览器含有这个网站的曲奇,导致你看不到重定向。  

你可以新建一个隐身窗口,按下F12,然后打开这个网页就可以发现重定向了(网速要慢一点,恰好我在下载东西。才发现的)

最佳答案

查看完整内容

怎么说好呢?? 首先,你并没有获取到真正的网页源代码的原因是。 当你请求这个网页的时候,它会向你发送一个曲奇(英文,直接发英文会被审核) 然后再把你重定向到真正的网页。 注意,这个网页的曲奇是会你的操作变化而变化的 会不断地ajxa后端来更换曲奇。 可以说,反爬措施很强 建议直接用seleium吧 用requests也可以,但是很麻烦。要不断的请求ajxa请求后端来获取曲奇 总的来说,你请求的header不完整 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-5 17:09:28 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wongyusing 于 2018-11-5 23:56 编辑

怎么说好呢??  
首先,你并没有获取到真正的网页源代码的原因是。  
当你请求这个网页的时候,它会向你发送一个曲奇(英文,直接发英文会被审核)  
然后再把你重定向到真正的网页。  
注意,这个网页的曲奇是会你的操作变化而变化的
会不断地ajxa后端来更换曲奇。
可以说,反爬措施很强
建议直接用seleium吧
用requests也可以,但是很麻烦。要不断的请求ajxa请求后端来获取曲奇

总的来说,你请求的header不完整

至于你为什么抓包的时候没有发现重定向是因为你的浏览器含有这个网站的曲奇,导致你看不到重定向。  

你可以新建一个隐身窗口,按下F12,然后打开这个网页就可以发现重定向了(网速要慢一点,恰好我在下载东西。才发现的)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-5 17:16:06 | 显示全部楼层
感觉是,等大佬解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-5 17:42:20 | 显示全部楼层
本帖最后由 天圆突破 于 2018-11-5 17:43 编辑
  1. from selenium import webdriver
  2. import time

  3. class DIN:
  4.     def __init__(self):
  5.         driver = webdriver.Chrome()
  6.         driver.get('https://www.din.de/en')

  7.         elem = driver.page_source
  8.         time.sleep(20)
  9.         print(elem)

  10. if __name__ == '__main__':
  11.     DIN()
复制代码


好吧,看来确实是JS渲染的整个页面……感觉好可怜,这个网站估计被爬虫整疯了,这么低的渲染效率,看来是完全不在乎用户体验了。
但是这个网站的JS代码完全看不懂啊,而且selenium效率低到令人发指
有什么办法能提高selenium的效率吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-5 17:43:55 | 显示全部楼层
无头禁图片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-5 20:15:51 From FishC Mobile | 显示全部楼层
天圆突破 发表于 2018-11-5 17:42
好吧,看来确实是JS渲染的整个页面……感觉好可怜,这个网站估计被爬虫整疯了,这么低的渲染效率,看来 ...

scrapy-splash了解一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-6 09:16:22 | 显示全部楼层
过来顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-6 10:37:14 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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