楼主: 万人往LVR
3313 27

[统计软件与数据分析] 用python爬取一个网页源码 [推广有奖]

  • 1关注
  • 13粉丝

副教授

82%

还不是VIP/贵宾

-

威望
0
论坛币
5127 个
通用积分
816.1888
学术水平
70 点
热心指数
112 点
信用等级
40 点
经验
9088 点
帖子
625
精华
0
在线时间
1182 小时
注册时间
2013-7-18
最后登录
2023-12-6

100论坛币
https://asos.tmall.com/search.htm?spm=a1z10.5-b.w4011-5044691060.102.QqiXRs&search=y&orderType=defaultSort&pageNo=2&tsearch=y#anchor
求python代码,用python爬取此网页的源代码

关键词:python Defaults Default search Anchor python 网页
沙发
can_do 发表于 2015-8-11 21:20:12 |只看作者 |坛友微信交流群
顶一个

使用道具

藤椅
bxshi 发表于 2015-8-12 02:10:24 |只看作者 |坛友微信交流群
详细一点,就要这个页面还是要点这个页面的每个链接然后下载html,点开了链接之后需不需要在打开的页面里再把所有链接下载下来?

使用道具

板凳
万人往LVR 在职认证  发表于 2015-8-12 08:55:33 |只看作者 |坛友微信交流群
bxshi 发表于 2015-8-12 02:10
详细一点,就要这个页面还是要点这个页面的每个链接然后下载html,点开了链接之后需不需要在打开的页面里再 ...
不需要里面的链接,只需要这个页面的网页源码,我只会urllib但是打不开这个网页所以来求助,提取信息什么的我会。

使用道具

报纸
bxshi 发表于 2015-8-12 22:46:46 |只看作者 |坛友微信交流群
明白了,这个问题是因为urllib不能好好处理302重定向导致的错误,你需要用requests包来抓数据。

代码如下:

  1. import requests
  2. r = requests.get('https://asos.world.tmall.com/search.htm?spm=a1z10.5-b.w41-5044691060.102.QqiXRs')
  3. r.text
复制代码


import requests
r = requests.get('https://asos.world.tmall.com/search.htm?spm=a1z10.5-b.w41-5044691060.102.QqiXRs')
r.text

希望有帮助。

使用道具

地板
bxshi 发表于 2015-8-12 22:57:08 |只看作者 |坛友微信交流群
FYI, here is the quick start of requests:

http://docs.python-requests.org/en/latest/user/quickstart/#redirection-and-history

使用道具

7
shaode01 学生认证  发表于 2015-8-13 21:38:54 |只看作者 |坛友微信交流群
楼上的没有回答到点子上,之所以会出现这个错误,是因为你要访问的url是带参数的,
?后面的
spm=a1z10.5-b.w4011-5044691060.102.QqiXRs
&search=y
&orderType=defaultSort
&pageNo=2
&tsearch=y
#anchor
一共有这些个参数,不能用那种方式访问

使用道具

8
bxshi 发表于 2015-8-13 22:10:54 |只看作者 |坛友微信交流群
shaode01 发表于 2015-8-13 21:38
楼上的没有回答到点子上,之所以会出现这个错误,是因为你要访问的url是带参数的,
?后面的
spm=a1z10.5- ...
把参数放到payload就可以了?我直接curl访问这个地址同样是302过多然后失败,请问你能否给一下代码?

使用道具

9
shaode01 学生认证  发表于 2015-8-13 23:14:26 |只看作者 |坛友微信交流群
bxshi 发表于 2015-8-13 22:10
把参数放到payload就可以了?我直接curl访问这个地址同样是302过多然后失败,请问你能否给一下代码?
我错了,这跟参数貌似没有关系,我访问天猫首页是没有问题的
https://www.tmall.com/?spm=a1z10.5-b.0.0.gAVjBC
你是在linux下?

使用道具

10
shaode01 学生认证  发表于 2015-8-13 23:16:15 |只看作者 |坛友微信交流群
bxshi 发表于 2015-8-13 22:10
把参数放到payload就可以了?我直接curl访问这个地址同样是302过多然后失败,请问你能否给一下代码?
直接访问天猫首页没有问题
  1. https://www.tmall.com/?spm=a1z10.5-b.0.0.gAVjBC
复制代码

使用道具

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

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 07:53