鱼C论坛

 找回密码
 立即注册
查看: 3083|回复: 10

[已解决]爬虫爬取源码

[复制链接]
发表于 2023-2-6 22:52:18 | 显示全部楼层 |阅读模式

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

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

x
import requests
from lxml import html
etree = html.etree
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
}
url = 'https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908'
response = requests.get(url=url,headers=header).text
print(response)
大佬们,这个为什么爬取不到页面源码呀
最佳答案
2023-2-6 23:15:06
本帖最后由 isdkz 于 2023-2-6 23:41 编辑

爬到的结果这里可以看到最后面有这么一段 js 代码

function reload(x) {setCookie("acw_sc__v2", x);document.location.reload();}

这里是设置了一个 cookie 然后重载界面,这个 x 是 js 算出来的,你可以想办法执行获取到的 js 代码得到这个x,也可以审计它的js代码并把逻辑在 Python 中复现 (但是我看了一下它那个js是混淆加密了的,除非你精力旺盛有时间,不然就别想了)

最简单的办法还是去浏览器复制,不用复制完全,就复制这个界面需要的 acw_sc__v2,因为这个 Cookie 是这个页面最后设置的一个 Cookie,所以它应该排在 Cookie 的最后面

代码(记得改这个 Cookie,去你的浏览器那里复制,因为这个Cookie的有效期很短):
import requests
from lxml import html
etree = html.etree
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
    'Cookie': 'acw_sc__v2=63e1167ba5665f0022e4fc72118dfc0e71b871b8'                              # 要改这里
}

url = 'https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908'
response = requests.get(url=url, headers=header).text
print(response)
屏幕截图(14).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-6 23:15:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-2-6 23:41 编辑

爬到的结果这里可以看到最后面有这么一段 js 代码

function reload(x) {setCookie("acw_sc__v2", x);document.location.reload();}

这里是设置了一个 cookie 然后重载界面,这个 x 是 js 算出来的,你可以想办法执行获取到的 js 代码得到这个x,也可以审计它的js代码并把逻辑在 Python 中复现 (但是我看了一下它那个js是混淆加密了的,除非你精力旺盛有时间,不然就别想了)

最简单的办法还是去浏览器复制,不用复制完全,就复制这个界面需要的 acw_sc__v2,因为这个 Cookie 是这个页面最后设置的一个 Cookie,所以它应该排在 Cookie 的最后面

代码(记得改这个 Cookie,去你的浏览器那里复制,因为这个Cookie的有效期很短):
import requests
from lxml import html
etree = html.etree
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
    'Cookie': 'acw_sc__v2=63e1167ba5665f0022e4fc72118dfc0e71b871b8'                              # 要改这里
}

url = 'https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908'
response = requests.get(url=url, headers=header).text
print(response)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 09:22:27 | 显示全部楼层
isdkz 发表于 2023-2-6 23:15
爬到的结果这里可以看到最后面有这么一段 js 代码

function reload(x) {setCookie("acw_sc__v2", x);doc ...

好的,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 11:25:12 | 显示全部楼层
isdkz 发表于 2023-2-6 23:15
爬到的结果这里可以看到最后面有这么一段 js 代码

function reload(x) {setCookie("acw_sc__v2", x);doc ...

那可以用selenium获取cookie,然后用requests爬取源码吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 11:26:25 | 显示全部楼层
哈岁NB 发表于 2023-2-7 11:25
那可以用selenium获取cookie,然后用requests爬取源码吗


可以,也可以用 requests-html,requests-html这个库你可以了解一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 11:36:17 | 显示全部楼层
isdkz 发表于 2023-2-7 11:26
可以,也可以用 requests-html,requests-html这个库你可以了解一下

好的,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 12:04:37 | 显示全部楼层
本帖最后由 哈岁NB 于 2023-2-7 12:06 编辑
isdkz 发表于 2023-2-7 11:26
可以,也可以用 requests-html,requests-html这个库你可以了解一下

import requests
from lxml import html
etree = html.etree
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

bro = webdriver.Chrome('D:/技能/chromedriver.exe')
bro.get('https://xiaoyuan.zhaopin.com/')
bro.find_element(By.XPATH,'//*[@id="root"]/div/div[1]/div/div[1]/div[2]/a[1]').click()
sleep(10)
bro.find_element(By.XPATH,'//*[@id="root"]/div[2]/div/div/div[3]/span[2]').click()
sleep(2)

cookies = bro.get_cookies()

bro.quit()

#解析cookie
dic = {}
for cookie in cookies:
    dic[cookie['name']] = cookie['value']

header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
}
url = 'https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908'
response = requests.get(url=url,headers=header,cookies=dic).text
print(response)
用selenium爬取cookie,怎么爬到cookie就缺少acw_sc__v2这个呢

到这就没了,没有爬到acw_sc__v2这个

到这就没了,没有爬到acw_sc__v2这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 12:21:36 | 显示全部楼层
哈岁NB 发表于 2023-2-7 12:04
用selenium爬取cookie,怎么爬到cookie就缺少acw_sc__v2这个呢

因为那个 cookie 是在 https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908 这个页面生成的,而你用 selenium 访问的不是这个页面
import requests
from lxml import html
etree = html.etree
import warnings
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from time import sleep

warnings.simplefilter('ignore',Warning)
chrome_options = Options()
chrome_options.add_argument('--headless')

bro = webdriver.Chrome('chromedriver.exe', options=chrome_options)
url = 'https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908'
bro.get(url)
#解析cookie
cookie = {}
cookie['acw_sc__v2'] = bro.get_cookie('acw_sc__v2')['value']
bro.quit()


header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
}
response = requests.get(url=url,headers=header,cookies=cookie).text
print(response)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 12:32:01 | 显示全部楼层
isdkz 发表于 2023-2-7 12:21
因为那个 cookie 是在 https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908 这个页面生成的,而你 ...

这个页面不是也有acw_sc__v2这个吗

这个页面不是也有acw_sc__v2这个吗

这个页面不是也有acw_sc__v2这个吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-7 13:19:35 | 显示全部楼层
哈岁NB 发表于 2023-2-7 12:32
这个页面不是也有acw_sc__v2这个吗

那个是你访问过  https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908 之后留下的,

你可以重新开一个无痕页面直接访问 https://xiaoyuan.zhaopin.com 就会发现 cookie 没有 acw_sc__v2 这个,

要你访问过 https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908 之后才有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-7 15:02:46 | 显示全部楼层
isdkz 发表于 2023-2-7 13:19
那个是你访问过  https://xiaoyuan.zhaopin.com/job/CC407288330J40383568908 之后留下的,

你可以重 ...

明白了,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 17:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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