|
40鱼币
写爬虫第一次遇到这种情况
- class DIN:
- def __init__(self):
- self.url = 'https://www.din.de/en'
- self.session = requests.Session()
- self.headers = {
- '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',
- 'Host': 'www.din.de',
- }
- self.get_url()
- def get_url(self):
- with self.session.get(url=self.url, headers=self.headers) as response:
- soup = BeautifulSoup(response.text, 'lxml')
- print(soup)
- if __name__ == '__main__':
- DIN()
复制代码
body是空的,head里面出现【<noscript>Please enable JavaScript to view the page content.<br/>Your support ID is: 9356778754779032908.</noscript>】
但是我抓包并没有发现重定向,并且response是一次返回。难不成整个页面都是用js渲染出来的么?
想了解一下原理,求爬虫大佬帮忙指点一下
本帖最后由 wongyusing 于 2018-11-5 23:56 编辑
怎么说好呢??
首先,你并没有获取到真正的网页源代码的原因是。
当你请求这个网页的时候,它会向你发送一个曲奇(英文,直接发英文会被审核)
然后再把你重定向到真正的网页。
注意,这个网页的曲奇是会你的操作变化而变化的
会不断地ajxa后端来更换曲奇。
可以说,反爬措施很强
建议直接用seleium吧
用requests也可以,但是很麻烦。要不断的请求ajxa请求后端来获取曲奇
总的来说,你请求的header不完整
至于你为什么抓包的时候没有发现重定向是因为你的浏览器含有这个网站的曲奇,导致你看不到重定向。
你可以新建一个隐身窗口,按下F12,然后打开这个网页就可以发现重定向了(网速要慢一点,恰好我在下载东西。才发现的)
|
最佳答案
查看完整内容
怎么说好呢??
首先,你并没有获取到真正的网页源代码的原因是。
当你请求这个网页的时候,它会向你发送一个曲奇(英文,直接发英文会被审核)
然后再把你重定向到真正的网页。
注意,这个网页的曲奇是会你的操作变化而变化的
会不断地ajxa后端来更换曲奇。
可以说,反爬措施很强
建议直接用seleium吧
用requests也可以,但是很麻烦。要不断的请求ajxa请求后端来获取曲奇
总的来说,你请求的header不完整
...
|