对58同城二手平板电脑的爬虫

  • 一、先爬取内容中的一项
    • 先爬取一项的代码
    • 爬去一项的结果
  • 二、爬取一整页
    • 一整页代码
    • 一整页的全部信息结果

有网友留言说,这个代码已经不能爬取了,我2018.11.9号查看了一下,加了一个异常处理try,现在可以用了,原因是有的信息里面的标签由于促销价格被修改为别的了,所以爬取不到就会出错。现在 我将修改后的代码替换掉原有的爬取一整页的代码 以及 错误的图片比较

一、先爬取内容中的一项

网址如下:
URL = ‘https://bj.58.com/pingbandiannao/35923077687887x.shtml?psid=157596847202024134799949907&entinfo=35923077687887_p&slot=-1&iuType=p_1&PGTID=0d305a36-0000-19ea-0c77-0ae8025ace4f&ClickID=2’

先爬取一项的代码

代码中soup.select(),不明白的地方,我后续将详细解释,爬出来是空列表的情况。

import requests
from bs4 import BeautifulSoupURL = 'https://bj.58.com/pingbandiannao/35923077687887x.shtml?psid=157596847202024134799949907&entinfo=35923077687887_p&slot=-1&iuType=p_1&PGTID=0d305a36-0000-19ea-0c77-0ae8025ace4f&ClickID=2'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' }
wb_data = requests.get(URL,headers=headers)
soup = BeautifulSoup(wb_data.content, 'lxml')
#print(soup)
NameList = soup.select('h1.detail-title__name')
ProductName = NameList[0].text.strip()
PriceList = soup.select('span.infocard__container__item__main__text--price')
ProductPrice = PriceList[0].text.strip()
ViewList = soup.select('div.infocard__container__item__main')
ProductView = ViewList[1].text
AreaList = soup.select('div.infocard__container__item__main > a')
ProductArea = AreaList[0].text+'-'+AreaList[1].text
SellerNameList = soup.select('div.infocard__container__item__main > a')
SellerName = SellerNameList[2].text
CatalogueList = soup.select('div.nav > a')
Catalogue = CatalogueList[-1].textdata_dict = {'产品类别': Catalogue,'产品名称': ProductName,'产品价格': ProductPrice,'产品成色': ProductView,'产品区域': ProductArea,'卖家姓名': SellerName
}
print(data_dict)

注意headers需要修改成自己电脑的,详见我的博客【python爬虫–招聘信息】->headers错误信息,如果不写headers会被反爬取。

爬去一项的结果

{'产品类别': '北京平板电脑', '产品名称': 'surface pro5 I5 8G 128G, 全新未拆封', '产品价格': '5000 元', '产品成色': '全新', '产品区域': '通州-马驹桥', '卖家姓名': '张先生'}

二、爬取一整页

url = ‘https://bj.58.com/pingbandiannao/?PGTID=0d409654-017a-3436-09be-f01fa1e2217f&ClickID=13’

一整页代码

import requests
from bs4 import BeautifulSoup#得到每个的详细信息
def get_info(URL):#URL = 'https://bj.58.com/pingbandiannao/35923077687887x.shtml?psid=157596847202024134799949907&entinfo=35923077687887_p&slot=-1&iuType=p_1&PGTID=0d305a36-0000-19ea-0c77-0ae8025ace4f&ClickID=2'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' }try:wb_data = requests.get(URL,headers=headers)soup = BeautifulSoup(wb_data.content, 'lxml')#print(soup)NameList = soup.select('h1.detail-title__name')ProductName = NameList[0].text.strip()PriceList = soup.select('span.infocard__container__item__main__text--price')ProductPrice = PriceList[0].text.strip()AreaList = soup.select('div.infocard__container__item__main > a')ProductArea = AreaList[0].text.strip()+'-'+AreaList[1].text.strip()SellerNameList = soup.select('div.infocard__container__item__main > a')SellerName = SellerNameList[2].textCatalogueList = soup.select('div.nav > a')Catalogue = CatalogueList[-1].textdata_dict = {'产品类别': Catalogue,'产品名称': ProductName,'产品价格': ProductPrice,'产品区域': ProductArea,'卖家姓名': SellerName}print(data_dict)except:print('此项信息被修改,所以爬取错误') #不想看到这句话,可以写pass#get_info()'''
下面是得到一整页中每个卖家信息的链接,这里只爬取了第一页中的全部信息,
也可以爬取好多页。只需要将下方的url中根据每页信息的不同变化相应的数字页码。
'''
def get_all_info():url = 'https://bj.58.com/pingbandiannao/?PGTID=0d409654-017a-3436-09be-f01fa1e2217f&ClickID=13'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' }wb_data = requests.get(url,headers=headers)soup = BeautifulSoup(wb_data.text, 'lxml')GetLink = soup.select('td.t > a')#print(GetLink)for i in GetLink:link = i.get('href')  #得到href链接#删选是平板电脑的链接if 'pingbandiannao' in link:get_info(link)get_all_info()

一整页的全部信息结果

{'产品类别': '北京平板电脑', '产品名称': '上门回收IPAD平板电脑 IPHONE全系列', '产品价格': '4999 元', '产品区域': '北京-邢先生', '卖家姓名': ''}
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': '展柜展示柜钛合金展柜精品展柜珠宝玉器展柜化妆品展柜', '产品价格': '面议', '产品区域': '东城-东城周边', '卖家姓名': '徐经理'}
{'产品类别': '北京平板电脑', '产品名称': '联想Yogabook Android 128G 雅黑色', '产品价格': '2000 元', '产品区域': '朝阳-望京', '卖家姓名': '胡先生'}
此项信息被修改,所以爬取错误
此项信息被修改,所以爬取错误
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': '戴尔i7吃鸡游戏', '产品价格': '2800 元', '产品区域': '朝阳-东坝', '卖家姓名': 's***0'}
{'产品类别': '北京平板电脑', '产品名称': '古董私人收购 玉器瓷器青铜器古币字画 现金结算收购', '产品价格': '99999 元', '产品区域': '北京-陈枫', '卖家姓名': ''}
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': '转让带车指标的公司', '产品价格': '1 元', '产品区域': '朝阳-安贞', '卖家姓名': '郭先生'}
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': '华为荣耀畅玩二平板电脑', '产品价格': '650 元', '产品区域': '石景山-金顶街', '卖家姓名': 'z***3'}
{'产品类别': '北京平板电脑', '产品名称': 'Lenovo/联想 Miix5 I5 转卖~', '产品价格': '4396 元', '产品区域': '石景山-衙门口', '卖家姓名': 'l***8'}
{'产品类别': '北京平板电脑', '产品名称': '九成新转让平板电脑', '产品价格': '1600 元', '产品区域': '昌平-沙河', '卖家姓名': 'm***t'}
{'产品类别': '北京平板电脑', '产品名称': '公司发的福利,一共两台,出售一台', '产品价格': '1200 元', '产品区域': '丰台-蒲黄榆', '卖家姓名': 'e***6'}
{'产品类别': '北京平板电脑', '产品名称': '全新未拆封微软Surface Por电脑', '产品价格': '6000 元', '产品区域': '朝阳-大屯', '卖家姓名': 'q***8'}
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': '三星TAB3 16G 8.1寸', '产品价格': '500 元', '产品区域': '大兴-观音寺', '卖家姓名': 's***5'}
{'产品类别': '北京平板电脑', '产品名称': '小米平板便宜出需要的联系我', '产品价格': '500 元', '产品区域': '顺义-李桥', '卖家姓名': 'f***6'}
{'产品类别': '北京平板电脑', '产品名称': '电影孩子学习有帮助', '产品价格': '1499 元', '产品区域': '房山-阎村', '卖家姓名': 'h***r'}
此项信息被修改,所以爬取错误
{'产品类别': '北京平板电脑', '产品名称': 'surfacePro4全新基本未用', '产品价格': '4300 元', '产品区域': '丰台-丽泽桥', '卖家姓名': '1***h'}
{'产品类别': '北京平板电脑', '产品名称': '个人全新Ipad Pro转让', '产品价格': '3666 元', '产品区域': '丰台-马家堡', '卖家姓名': 'o***4'}
{'产品类别': '北京平板电脑', '产品名称': '华为P20亮黑色', '产品价格': '3300 元', '产品区域': '朝阳-大山子', '卖家姓名': 'n***9'}
{'产品类别': '北京平板电脑', '产品名称': '处理老台式显示器', '产品价格': '150 元', '产品区域': '朝阳-甘露园', '卖家姓名': 'x***3'}
{'产品类别': '北京平板电脑', '产品名称': '转全新国行未拆封ipad一台', '产品价格': '2150 元', '产品区域': '朝阳-北苑', '卖家姓名': '小***滔'}
{'产品类别': '北京平板电脑', '产品名称': '自用ipad air2 wifi版', '产品价格': '1800 元', '产品区域': '海淀-马连洼', '卖家姓名': '1***o'}
{'产品类别': '北京平板电脑', '产品名称': '海尔品牌一体电脑', '产品价格': '260 元', '产品区域': '昌平-城北', '卖家姓名': 'z***1'}Process finished with exit code 0

图片比较:
这里的标签被网页改了,所以以前的代码会报错

------------------------------------------------------------------------------------
谢谢支持,亲测运行成功。注意更改headers,(好像不修改也可以用)!

python爬虫58同城(多个信息一次爬取)相关推荐

  1. Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  2. Python爬虫: 单网页 所有静态网页 动态网页爬取

    Python爬虫: 单网页 所有静态网页 动态网页爬取 前言:所有页代码主干均来自网上!!!感谢大佬们. 其实我对爬虫还挺感兴趣的,因为我玩instagram(需要科学上网),上过IG的人都知道IG虽 ...

  3. Python爬虫新手入门教学(十七):爬取yy全站小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  4. Python爬虫新手入门教学(十三):爬取高质量超清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  5. python怎么爬取b站_【Python爬虫实例学习篇】——4、超详细爬取bilibili视频

    [Python爬虫实例学习篇]--4.超详细爬取bilibili视频 由于经常在B站上学习,但无奈于家里网络太差,在线观看卡顿严重,于是萌生了下载视频的想法(如果只是单纯想下载视频,请用you-get ...

  6. Python爬虫新手入门教学(二):爬取小说

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  7. Python爬虫初级(十三)—— 水木社区论坛爬取实战

    欢迎关注公众号K的笔记阅读博主更多优质学习内容 上一篇文章:Python爬虫初级(十二)-- 新闻消息抓取实战 实战阶段一:分析首页大板块 URL 我们首先打开待爬取页面 -- 水木社区的首页:htt ...

  8. 05 python爬虫 (58同城项目)

    使用爬虫 使用request获取网页 通过PyQuery进行解析数据 data.to_excel('./111.xls') <1>  创建连接 url是网址, 传入数据为需要爬取的网页地址 ...

  9. python爬虫58同城租房

    使用scrapy框架爬取58上面租房信息 源码如下: -- coding: utf-8 -- import scrapy from zufang.items import ZufangItem cla ...

最新文章

  1. 这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!...
  2. 小孩子如何学会语言?科学家使用计算机模型解释儿童语言学习过程
  3. golang修改结构体中的切片值
  4. Winform中使用FastReport的PictureObject时通过代码设置图片源并使Image图片旋转90度
  5. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
  6. Nunit2.5.10快速上手
  7. oracle++dtcol,Oracle 中的 Incarnation 到底是个什么?实验操作篇
  8. oSIP开发者手册 (四)
  9. cookie、sessionStorage、localStorage的区别
  10. centos 添加快捷
  11. 工作流之工单模型(一)
  12. 三菱plc pwm指令_三菱PLC初学者只要解决这50个问题,那你就觉得很容易上手?
  13. 碳中和数据集 1991-2020全球中国省级地级市县级市区各行业碳中和二氧化碳排放量碳封存 能源消费能源消耗能源结构数据大全
  14. BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char 说明与区别
  15. 2020强网杯部分题总结与复现
  16. 索骥馆-DIY硬盘之《新手3周学通硬盘芯片级维修》扫描版[PDF]
  17. 我是怎么在千氪上一天赚到5000氪金的?
  18. 实现两个主机之间的密钥分发和安全传输
  19. springboot整合ActiveMQ(点对点和发布订阅)
  20. 历史上康熙皇帝真的很喜欢微服私访吗?

热门文章

  1. Cocos2d-x制作跳棋第三步:棋子动作实现及AI算法思想
  2. android hide方法 末班,Android调用@hide系统隐藏类的几种方法
  3. E5 调用API续订服务:Microsoft 365 E5 Renew Web
  4. postman接口测试配置到Jenkins上进行接口自动化并生成测试报告
  5. 各种奖学金、社团、证书、竞赛奖项…
  6. Java实现 蓝桥杯VIP 算法训练 猴子分苹果
  7. Java通用权限系统视频(2021年高含金量版)
  8. 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
  9. Eclipse折叠代码插件folding 推荐
  10. java 汉字转拼音缩写_汉字转拼音 java 工具类