python脚本问题

Joe428 2018-01-29 09:41:24
下面那段代码,运行后每次只能取得23或7条记录,但实际有80条,我用Firepath在网页上抓也是80条。
放在循环里面输出,就只有23条或7条了,而且还一会23,一会7。。。
求大神指点~
================================================================
import urllib.request
from lxml import etree

response = urllib.request.urlopen('http://sh.ganji.com/fang1/changning/') #使用urlopen打开网址
html = response.read() #读取目标网页内容

selector = etree.HTML(html)
title = selector.xpath('//*[@class="f-list-item ershoufang-list"]/dl/dd[1]/a/text()')
money = selector.xpath('//*[@class="f-list-item ershoufang-list"]/dl/dd[5]/div[1]/span[1]/text()')

for i,j in zip(title,money):
print(i,":",j)
================================================================
...全文
373 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joe428 2018-02-01
  • 打赏
  • 举报
回复
引用 8 楼 BFInWR的回复:
[quote=引用 7 楼 weixin_38500276 的回复:] [quote=引用 4 楼 BFInWR 的回复:] 你应该把你的错误日志打出来 我自己简单实现了一下 代码如下

import requests
from lxml import etree


url = "http://sh.ganji.com/fang1/changning"
resp = requests.get(url).text
selector = etree.HTML(resp)
list = selector.xpath('//*[@class="dd-item info"]/div[1]/span[1]/text()')
print("price:",list)
print("len:",len(list))
你实现的只是把“价格”和“条数”提取出来吧?我试了下也还是23条和7条。。。[/quote] 我只是写个你可以借鉴的demo而已,,怎么会呢 我跑几次也没有发现问题啊,直接上图好了 最后给个建议 你看试试爬下其他网站 看是不是也有这个问题[/quote] 我用你的代码试了下,还是不行,换了个网站倒是可以。 而且我发现read到的网页就是不全的。。。
Joe428 2018-01-31
  • 打赏
  • 举报
回复
引用 4 楼 BFInWR 的回复:
你应该把你的错误日志打出来 我自己简单实现了一下 代码如下

import requests
from lxml import etree


url = "http://sh.ganji.com/fang1/changning"
resp = requests.get(url).text
selector = etree.HTML(resp)
list = selector.xpath('//*[@class="dd-item info"]/div[1]/span[1]/text()')
print("price:",list)
print("len:",len(list))
你实现的只是把“价格”和“条数”提取出来吧?我试了下也还是23条和7条。。。
Joe428 2018-01-31
  • 打赏
  • 举报
回复
引用 5 楼 xpresslink 的回复:
网站有反爬机制。至少要伪装一下吧。
也就是说因为反爬机制,所以我爬出来的数据不全吗?
虾米馅煎包 2018-01-31
  • 打赏
  • 举报
回复
引用 7 楼 weixin_38500276 的回复:
[quote=引用 4 楼 BFInWR 的回复:] 你应该把你的错误日志打出来 我自己简单实现了一下 代码如下

import requests
from lxml import etree


url = "http://sh.ganji.com/fang1/changning"
resp = requests.get(url).text
selector = etree.HTML(resp)
list = selector.xpath('//*[@class="dd-item info"]/div[1]/span[1]/text()')
print("price:",list)
print("len:",len(list))
你实现的只是把“价格”和“条数”提取出来吧?我试了下也还是23条和7条。。。[/quote] 我只是写个你可以借鉴的demo而已,,怎么会呢 我跑几次也没有发现问题啊,直接上图好了 最后给个建议 你看试试爬下其他网站 看是不是也有这个问题
Joe428 2018-01-30
  • 打赏
  • 举报
回复
没人回,自己顶一下。。
混沌鳄鱼 2018-01-30
  • 打赏
  • 举报
回复
网站有反爬机制。至少要伪装一下吧。
虾米馅煎包 2018-01-30
  • 打赏
  • 举报
回复
你应该把你的错误日志打出来
我自己简单实现了一下 代码如下

import requests
from lxml import etree


url = "http://sh.ganji.com/fang1/changning"
resp = requests.get(url).text
selector = etree.HTML(resp)
list = selector.xpath('//*[@class="dd-item info"]/div[1]/span[1]/text()')
print("price:",list)
print("len:",len(list))

Joe428 2018-01-29
  • 打赏
  • 举报
回复
没人回 自己顶一下。。
Joe428 2018-01-29
  • 打赏
  • 举报
回复
mark 自己顶一下

37,719

社区成员

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

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