鱼C论坛

 找回密码
 立即注册
查看: 5760|回复: 22

python爬虫

[复制链接]
发表于 2020-2-1 12:44:22 | 显示全部楼层 |阅读模式

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

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

x
#这是我写的代码
  1. import requests
  2. import re

  3. url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"


  4. headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}

  5. html = requests.get(url,headers = headers).text
  6. book_name = re.compile('\d{4}.\d{5}.\d{4}.*?\d{4}.\d{5}.*?=')
  7. result = re.findall(book_name,html)
  8. print(result)
复制代码


#这是我要爬取的内容,   声明 : 每次这个页面刷新公式都会发生变化,所以上面我写的只能抓取它的格式,而不能抓取准确数字。
#麻烦大佬们,帮忙看一下,我是不是那个地方出错了
11.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-1 12:54:43 | 显示全部楼层
由于它的位数不是一定的,所以将正则表达式改一改就可以了:

  1. import requests
  2. import re

  3. url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"

  4. headers = {
  5.     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
  6.                   "(KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}

  7. html = requests.get(url, headers=headers).text
  8. book_name = re.compile(r'\d+?.\d+?.\d+?.*?\d+?.\d+?.*?=')
  9. result = re.findall(book_name, html)
  10. print(result)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 12:57:39 | 显示全部楼层
zltzlt 发表于 2020-2-1 12:54
由于它的位数不是一定的,所以将正则表达式改一改就可以了:

这些 我都 试过,但是,我的意思是当我匹配的内容和网页显示的内容一致,因为网页每次刷新公式都会发生变化,代码每次运行结果也都不一样。所以我想问一下,如果可以准确抓取呢段代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 12:58:45 | 显示全部楼层
zltzlt 发表于 2020-2-1 12:54
由于它的位数不是一定的,所以将正则表达式改一改就可以了:

我设置{}里面的重复次数是为了让他位数先统一,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 12:59:20 | 显示全部楼层
python小学士 发表于 2020-2-1 12:57
这些 我都 试过,但是,我的意思是当我匹配的内容和网页显示的内容一致,因为网页每次刷新公式都会发生变 ...

加个 while 循环就可以了:

  1. import requests
  2. import re

  3. result = []
  4. while not result:
  5.     url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"

  6.     headers = {
  7.         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
  8.                       "(KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}

  9.     html = requests.get(url, headers=headers).text
  10.     book_name = re.compile(r'\d{4}.\d{5}.\d{4}.*?\d{4}.\d{5}.*?=')
  11.     result = re.findall(book_name, html)
  12. print(result)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:01:53 | 显示全部楼层
zltzlt 发表于 2020-2-1 12:59
加个 while 循环就可以了:

不行,执行结果和网页不一样,可以复制一下url打开一下网址然后刷新一下就明白了,让这个题愁死了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 13:02:58 | 显示全部楼层
python小学士 发表于 2020-2-1 13:01
不行,执行结果和网页不一样,可以复制一下url打开一下网址然后刷新一下就明白了, ...


执行结果和网页不一样 ?你到底想实现什么功能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:04:15 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:02
执行结果和网页不一样 ?你到底想实现什么功能

现在网页内容不是9461*89444+1581*(9461+89444)=这个公式嘛,我执行的结果是其他公式,我给你截图一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 13:04:44 | 显示全部楼层
python小学士 发表于 2020-2-1 13:04
现在网页内容不是9461*89444+1581*(9461+89444)=这个公式嘛,我执行的结果是其他公式,我给你截图一下

它每次刷新都会变啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 13:05:53 | 显示全部楼层
python小学士 发表于 2020-2-1 13:04
现在网页内容不是9461*89444+1581*(9461+89444)=这个公式嘛,我执行的结果是其他公式,我给你截图一下

你想让浏览器和 Python 显示相同 ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:06:24 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:02
执行结果和网页不一样 ?你到底想实现什么功能

这是我执行了4次的结果,跟网页的内容都不是一致的。。。。
11.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:07:05 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:05
你想让浏览器和 Python 显示相同 ?

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

使用道具 举报

发表于 2020-2-1 13:07:55 | 显示全部楼层
python小学士 发表于 2020-2-1 13:06
这是我执行了4次的结果,跟网页的内容都不是一致的。。。。

你想要实现这样的功能?不可能,你审查元素看到的内容并非网页的源代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 13:08:12 | 显示全部楼层

不可能,别想了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:09:10 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:08
不可能,别想了

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

使用道具 举报

发表于 2020-2-1 13:10:15 | 显示全部楼层

目前能实现的功能只是抓取指定位数的数据而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:12:05 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:10
目前能实现的功能只是抓取指定位数的数据而已

这个题,是我们学长给我们发的一个题  当场去世  。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:13:17 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:10
目前能实现的功能只是抓取指定位数的数据而已

还是要  谢谢版主,过年好 , 哈哈哈  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-1 13:54:00 | 显示全部楼层
zltzlt 发表于 2020-2-1 13:10
目前能实现的功能只是抓取指定位数的数据而已

版主版主版主   
  1. import urllib.request
  2. import re

  3. url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"

  4. response = urllib.request.urlopen(url)
  5. html = response.read().decode("utf-8")
  6. print(html)
  7. #imts = requests.get(url,headers = headers).text
  8. result = re.findall('\d+.\d+.\d+.\(\d+.\d+\)\=',html,re.S)
  9. print(result)
复制代码


用 urllib.request为啥就可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-1 14:09:10 | 显示全部楼层
  1. Cookie: PHPSESSID=e8d7427a94d34b7139022842d33620e1
  2. Host: lab1.xseclab.com
  3. Origin: http://lab1.xseclab.com
  4. Referer: http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php
  5. Upgrade-Insecure-Requests: 1
  6. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
  7. v: 1000
复制代码

  1. Content-Type: application/x-www-form-urlencoded
  2. Cookie: PHPSESSID=e8d7427a94d34b7139022842d33620e1
  3. Host: lab1.xseclab.com
  4. Origin: http://lab1.xseclab.com
  5. Referer: http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php
  6. Upgrade-Insecure-Requests: 1
  7. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
  8. v: 10000
复制代码


每次采集肯定是不一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-22 01:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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