鱼C论坛

 找回密码
 立即注册
查看: 908|回复: 16

[已解决][爬虫]小白遇到个奇怪的问题....求大神解决[正则表达式相关]==========[未解决]

[复制链接]
最佳答案
1 
发表于 2017-10-11 23:25:20 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
本帖最后由 XIO 于 2017-10-12 09:20 编辑

页面代码:
</dd>
    <!--  item.discntPrice:  225.00     -->                                              # 需要匹配部分
    <dd class='\"detail\"'>


爬数据代码
price = []
keyP = re.compile(r'(?<=item\.discntPrice:).+(?=  ')                             #正则匹配部分
p = keyP.findall(str(soup))
for i in p:
    price.append(i.strip())


问题描述:
测试时,页面代码保存在本地.一切工作正常.
b.png


但是

用requests.get到本地的即时数据..正则表达式匹配的部分后半段就傻掉了...
变成这样:
a.png

试过了.+(?= -->)|.+(?=\s)|.+  |.+$ 都没用.


贴上网址:
https://costcowholesale.tmall.co ... mp;tsearch=y#anchor

不排除前面的代码有问题, 不过有点长就不贴了.
如果大佬能提供别的方法获得页面中商品价格的方法也行.(换页之前的商品价格)
最佳答案
2017-10-14 01:02:34
  1. import requests, re
  2. head = {'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  3. 'accept-encoding':'gzip, deflate, sdch, br',
  4. 'accept-language':'zh-CN,zh;q=0.8',
  5. 'cache-control':'max-age=0',
  6. 'cookie':'t=32b077cd9fe188bae9b5b1bcf5d99425; _tb_token_=3ee7ab176ddeb; cookie2=18a010b9e92e471b4659d2cbaba1b1fb; __guid=225831944.1665576651482029600.1507912543238.3494; monitor_count=1; pnm_cku822=; cna=9ZjiET/2tmkCAXAUYXuG6Xke; cq=ccp%3D1; isg=ArGxbNukTKDUo-DBeTiDaWO1wD2LNiR4FoAu5ZPGrXiXutEM2-414F_YqFE1',
  7. 'upgrade-insecure-requests':'1',
  8. 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  9. res = requests.get('https://costcowholesale.tmall.com/i/asynSearch.htm?_ksTS=1507912605183_125&callback=jsonp126&mid=w-16714406906-0&wid=16714406906&path=/search.htm&search=y&pageNo=1&tsearch=y',headers=head)
  10. #print(res.text)
  11. print(re.findall('discntPrice:\s+(\d+\.\d{2})\s+-->', res.text))
复制代码

['298.00', '398.00', '179.00', '189.00', '119.00', '179.00', '699.00', '79.00', '149.00', '79.00', '145.00', '368.00', '889.00', '147.00', '227.00', '177.00', '149.00', '1999.00', '99.00', '189.00', '198.00', '127.00', '99.00', '179.00', '119.00', '269.00', '69.00', '119.00', '159.00', '125.00', '319.00', '109.00', '249.00', '125.00', '255.00', '1999.00', '235.00', '139.00', '125.00', '129.00', '85.00', '197.00', '279.00', '1249.00', '249.00', '139.00', '79.00', '75.00', '155.00', '4980.00', '459.00', '198.00', '1699.00', '5699.00', '135.00', '85.00', '375.00', '235.00', '105.00', '75.00']
[Finished in 0.7s]
最佳答案
16 
发表于 2017-10-11 23:48:32 | 显示全部楼层

回帖奖励 +10 鱼币

什么网址,我看看HTML
最佳答案
39 
发表于 2017-10-12 00:22:06 | 显示全部楼层

回帖奖励 +10 鱼币

先占沙发再好好研究
最佳答案
1 
 楼主| 发表于 2017-10-12 08:35:26 | 显示全部楼层
堕落之翼 发表于 2017-10-11 23:48
什么网址,我看看HTML

已贴网址;
url = 'https://costcowholesale.tmall.com/i/asynSearch.htm?_ksTS=1507696538482_412&\
callback=jsonp413&mid=w-16714406906-0&wid=16714406906&path=/search.htm&search=y&pageNo=1&tsearch=y'
最佳答案
234 
发表于 2017-10-12 09:04:27 | 显示全部楼层

回帖奖励 +10 鱼币

得好好研究研究
最佳答案
1 
 楼主| 发表于 2017-10-12 09:20:38 | 显示全部楼层
最佳答案
1214 
发表于 2017-10-12 09:21:34 | 显示全部楼层

回帖奖励 +10 鱼币

你先试试将p先打印出来看看存的是什么
最佳答案
3 
发表于 2017-10-12 09:42:25 | 显示全部楼层

回帖奖励 +10 鱼币

还没学到那一部分的知识,看不懂
最佳答案
0 
发表于 2017-10-12 10:37:51 | 显示全部楼层

回帖奖励 +10 鱼币

还没学到,看看大神解答
最佳答案
156 
发表于 2017-10-12 12:02:26 | 显示全部楼层
最佳答案
6 
发表于 2017-10-12 17:24:28 | 显示全部楼层

回帖奖励 +10 鱼币

网站进不去额
什么鬼?
url.jpg
最佳答案
335 
发表于 2017-10-12 17:55:14 | 显示全部楼层

回帖奖励 +10 鱼币

看到不少水鱼币的。
我推荐beautifulsoup4.
最佳答案
1 
发表于 2017-10-12 21:46:06 | 显示全部楼层

回帖奖励 +10 鱼币

还没学到,坐等大神解答
最佳答案
1 
发表于 2017-10-13 15:10:12 | 显示全部楼层
领鱼币的
最佳答案
3 
发表于 2017-10-14 00:05:20 | 显示全部楼层
.+后面加个?试一试
最佳答案
65 
发表于 2017-10-14 01:02:34 | 显示全部楼层    本楼为最佳答案   
  1. import requests, re
  2. head = {'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  3. 'accept-encoding':'gzip, deflate, sdch, br',
  4. 'accept-language':'zh-CN,zh;q=0.8',
  5. 'cache-control':'max-age=0',
  6. 'cookie':'t=32b077cd9fe188bae9b5b1bcf5d99425; _tb_token_=3ee7ab176ddeb; cookie2=18a010b9e92e471b4659d2cbaba1b1fb; __guid=225831944.1665576651482029600.1507912543238.3494; monitor_count=1; pnm_cku822=; cna=9ZjiET/2tmkCAXAUYXuG6Xke; cq=ccp%3D1; isg=ArGxbNukTKDUo-DBeTiDaWO1wD2LNiR4FoAu5ZPGrXiXutEM2-414F_YqFE1',
  7. 'upgrade-insecure-requests':'1',
  8. 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  9. res = requests.get('https://costcowholesale.tmall.com/i/asynSearch.htm?_ksTS=1507912605183_125&callback=jsonp126&mid=w-16714406906-0&wid=16714406906&path=/search.htm&search=y&pageNo=1&tsearch=y',headers=head)
  10. #print(res.text)
  11. print(re.findall('discntPrice:\s+(\d+\.\d{2})\s+-->', res.text))
复制代码

['298.00', '398.00', '179.00', '189.00', '119.00', '179.00', '699.00', '79.00', '149.00', '79.00', '145.00', '368.00', '889.00', '147.00', '227.00', '177.00', '149.00', '1999.00', '99.00', '189.00', '198.00', '127.00', '99.00', '179.00', '119.00', '269.00', '69.00', '119.00', '159.00', '125.00', '319.00', '109.00', '249.00', '125.00', '255.00', '1999.00', '235.00', '139.00', '125.00', '129.00', '85.00', '197.00', '279.00', '1249.00', '249.00', '139.00', '79.00', '75.00', '155.00', '4980.00', '459.00', '198.00', '1699.00', '5699.00', '135.00', '85.00', '375.00', '235.00', '105.00', '75.00']
[Finished in 0.7s]
最佳答案
1 
 楼主| 发表于 2017-11-4 09:18:23 | 显示全部楼层
jerryxjr1220 发表于 2017-10-14 01:02
['298.00', '398.00', '179.00', '189.00', '119.00', '179.00', '699.00', '79.00', '149.00', '79.00', ...

感谢认真答题.......

虽然已经用别的方法解决了...
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号 )

GMT+8, 2018-7-21 06:20

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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