python 爬虫 获取网页源码不完整 非动态加载

早起的鸟儿有虫吃h 2017-09-04 09:46:18
从浏览器查看网页源码和python中获取的网页源码竟然不同,应该不是动态加载的,python中获取的源码明显有残缺,难道被隐藏了?
问题困扰了我很久,希望大神解答下,谢谢。
网址:http://hr.tencent.com/position.php?&start=0#a

源码:

import requests
s = requests.Session()
headers = {}

headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
headers['Accept-Encoding'] = 'gzip, deflate, sdch'
headers['Accept-Language'] = 'zh-CN,zh;q=0.8'
headers['Cache-Control'] = 'max-age=0'
headers['Connection'] = 'keep-alive'
headers['Upgrade-Insecure-Requests'] = '1'
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
headers['Host'] = 'hr.tencent.com'
s .headers = headers
scont = s.get('http://hr.tencent.com/position.php?&start=0#a')
cont = scont.content.decode('utf-8')
print(cont)
print(scont.url)
print(scont.status_code)
...全文
2506 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanGuo_uu 2017-09-06
  • 打赏
  • 举报
回复
引用 3 楼 u013383813 的回复:
对的,我试了下,如果保存下来,是一致的,但是print()后就会出现残损。 这样会导致xpath无法提取。 谢谢回复。
不知道你xpath是怎么用的,代码里也没有体现。 你print出来,cmd里应该是有长度限制,所有前面的就被切掉了。 你直接对cont处理就好了嘛
  • 打赏
  • 举报
回复
引用 2 楼 EB_NUM 的回复:

import requests
from bs4 import BeautifulSoup
s = requests.Session()
headers = {}

headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
headers['Accept-Encoding'] = 'gzip, deflate, sdch'
headers['Accept-Language'] = 'zh-CN,zh;q=0.8'
headers['Cache-Control'] = 'max-age=0'
headers['Connection'] = 'keep-alive'
headers['Upgrade-Insecure-Requests'] = '1'
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
headers['Host'] = 'hr.tencent.com'
s.headers = headers
scont = s.get('http://hr.tencent.com/position.php?&start=0#a')
#加上这个,记得引包
soup = BeautifulSoup(scont.text,'lxml',from_encoding="utf-8")
print(soup)
我没发现与源码不一样,你看下我写的,如果发现那里不一样,可以留言,看到回你
是的。用您的方法是一样的,但执行我那个代码就会出现源代码缺损,导致xpath无法提取。如果直接将提取的源码保存也是完整的。。。。很头疼,不知道错在哪里了。 谢谢回复。
  • 打赏
  • 举报
回复
引用 1 楼 u012536120 的回复:
我试过了,感觉是相同的啊。(我把cont存储成html,然后打开进行对比) 说说看,哪里不同
对的,我试了下,如果保存下来,是一致的,但是print()后就会出现残损。 这样会导致xpath无法提取。 谢谢回复。
宇风 -飞扬 2017-09-05
  • 打赏
  • 举报
回复

import requests
from bs4 import BeautifulSoup
s = requests.Session()
headers = {}

headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
headers['Accept-Encoding'] = 'gzip, deflate, sdch'
headers['Accept-Language'] = 'zh-CN,zh;q=0.8'
headers['Cache-Control'] = 'max-age=0'
headers['Connection'] = 'keep-alive'
headers['Upgrade-Insecure-Requests'] = '1'
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
headers['Host'] = 'hr.tencent.com'
s.headers = headers
scont = s.get('http://hr.tencent.com/position.php?&start=0#a')
#加上这个,记得引包
soup = BeautifulSoup(scont.text,'lxml',from_encoding="utf-8")
print(soup)
我没发现与源码不一样,你看下我写的,如果发现那里不一样,可以留言,看到回你
sanGuo_uu 2017-09-05
  • 打赏
  • 举报
回复
我试过了,感觉是相同的啊。(我把cont存储成html,然后打开进行对比) 说说看,哪里不同

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧