鱼C论坛

 找回密码
 立即注册
查看: 2239|回复: 3

[已解决]爬取58同城2手房信息,列表一直是空的求解

[复制链接]
发表于 2017-3-25 12:35:37 | 显示全部楼层 |阅读模式

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

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

x

  1. import urllib.request
  2. import os
  3. import re

  4. def url_open(url):
  5.     req = urllib.request.Request(url)
  6.     req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400')
  7.     response = urllib.request.urlopen(url)
  8.     html = response.read()

  9.     return html


  10. num=list(range(1,5))
  11. for a in num:
  12.     a=str(a)
  13.     url="http://jdz.58.com/ershoufang/pn"+a+"/"
  14.     print(url)

  15.     html=url_open(url).decode("utf-8")
  16.     neirong=urllib.request.urlopen(url)
  17.     html=neirong.read().decode('utf-8')
  18.     '''
  19.     zongjia=re.compile(r'<div .*?qj-listright btall">.*?class="pri">(.*?)</b>(.*?)&nbsp;&nbsp;.*?(/d/d/d/d.*?)<br>.*?class="showroom">(.*?)</span>(/d{1,2}/d.*?)<br>.*?</div>')
  20.     print(zongjia)
  21.     '''
  22.     zongjia=re.compile(r'<div .*?"qj-listright btall">.*?class="pri">(.*?)</b> (.*?)\s*?&nbsp;&nbsp;.*?(\d\d\d\d.*?)\s.*?class="showroom">.*?(\S*?).*?</span>.*?(\d{1,4}\S*?).*?</div>')
  23.     zongjia_list=zongjia.findall(html)
  24.     print(zongjia_list)
复制代码


输出:
http://jdz.58.com/ershoufang/pn1/
[]
http://jdz.58.com/ershoufang/pn2/
[]
http://jdz.58.com/ershoufang/pn3/
[]
http://jdz.58.com/ershoufang/pn4/
[]

zongjia_list一直是空的,试验了很多次了。爬妹子图什么的都没事啊。
最佳答案
2017-3-26 01:30:01
虽然没有仔细看,但是肯定是你的正则表达式有问题
这种网页用正则干嘛,出错几率太大了,用BeautifulSoup4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-26 01:30:01 | 显示全部楼层    本楼为最佳答案   
虽然没有仔细看,但是肯定是你的正则表达式有问题
这种网页用正则干嘛,出错几率太大了,用BeautifulSoup4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-26 17:55:05 | 显示全部楼层
不会BeautifulSoup4,没看.你有地址链接给我看看?我写了很多次改了很多次就是出错。什么都爬不出来。直接\d{1,4}还有数字出来。但那是没用的。仔细看下编写也可以但那样子还有意思?更麻烦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-30 22:19:03 | 显示全部楼层
gopythoner 发表于 2017-3-26 01:30
虽然没有仔细看,但是肯定是你的正则表达式有问题
这种网页用正则干嘛,出错几率太大了,用Beaut ...

我只求能多指导我一些,正则是错了的。class="pri"这里的是复制下来的,实际是class='pri',直接复制下来就错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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