iphone看python文件_Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)...

原标题:Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)

本次实战是爬取二手苹果手机的信息,共爬取了300部手机信息,效果如下:

开发环境

环境:MAC + Python3.6

IDE:Pycharm

模块:import requests、from bs4 import BeautifulSoup

爬取目标

本次爬取目标是58同城二手iphone手机信息,如下图所示。这些信息主要包括标题,价钱,区域,信息所属分类。

爬取分析

本次需要爬取300个二手手机信息,但是58网站的每一页信息只有30套,如下。因此我们需要爬取10个网页的信息,

也就是爬取多个页面。通过观察,我们发现第二个网址是http://bj.58.com/iphonesj/pn2/,第三个是http://bj.58.com/iphonesj/pn1/,因此得出网址的规律是pn的页面以此加1。

根据上面的分析,我们只需使用一个for循环就可以得到10个页面的信息,具体代码如下:

`python` ''' def get_url(): ''' 明确任务:获取所有页面的URL,共 10个页面 : return: ''' #get_more_itmes("http://bj.58.com/iphonesj/") #生成10个页面的链接 urls = ( "http://bj.58.com/iphonesj/pn{}".format(page) for page in range( 1, 10)) #为每一个页面爬取信息 for url in urls: get_more_itmes(url)

爬取一个页面

解析静态网页信息三步即可完成:

第一步

使用requests库中的get方法解析页面,但是为了防止被反爬虫,建议使用headers进行模拟浏览器。否则你会得到下面的信息.

第一步代码如下:

`python` #第一步:使用GET获取页面请求 #获取页面信息 headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36' } data_url = requests. get(url,headers=headers)

第二步

是进行页面解析,找到需要的信息。本次使用的是BeautifulSoup库。Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序,具体代码如下

`python` #第二步:开始解析页面 soup =BeautifulSoup(data_url.text, 'lxml') #print(soup)

第三步

使用selector进行解析页面,找到二手苹果手机信息的详细页面。selector 定位需要的信息数据,具体方法是鼠标放在图片上,右键,检查,copy-CSS SELECTOR。浏览器自动copy出来css样式,具体代码如下

#根据标签,使用select定位标签位置 hrefs_list = soup.select( 'a.t') forhref inhrefs_list: #print(href.get('href')) link = href.get( 'href') #去除DUMP的无效链接 if 'zhuanzhuan' inlink: #iprint(link)

爬取目标页面信息

由于详细的房租信息也是一个新的页面,所以需要进行再次的重复上面的三步,具体代码如下。技术难点就是第三步中的,定位标签的唯一性。

`python` ''' data_html = requests. get(url) #print(data_html.text) #解析页面 data_soup = BeautifulSoup(data_html. text, 'lxml') #根据选择器选择想要的信息 #通过简单的小范围"唯一定位"方法查找信息 #使用 CONTRL+F 查找是不是唯一的 h1.info_titile #title_list = data_soup.select('h1.info_titile') titles = data_soup. select( 'h1.info_titile') title = titles[ 0]. text #span.price_now > i prices = data_soup. select( 'span.price_now > i') price = prices[ 0]. text # areas = data_soup. select( 'div.palce_li > span > i') area = areas[ 0]. text #切片-1 代表最后一个 class_itmes = data_soup. select( 'span.crb_i > a') class_item = class_itmes[ -1]. text.strip() #span.look_time number_views = data_soup. select( 'span.look_time') number_view = number_views[ 0]. text

到此,整个二手苹果手机的信息爬虫完成,完美的爬出来想要的信息,是不是很简单,然后试一下吧。重点提醒:换一个其他网址也同样适用哦。

转发此文到朋友圈,并截图到后台,

获得本文源代码

长按二维码,关注我们返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值