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
到此,整個二手蘋果手機的信息爬蟲完成,完美的爬出來想要的信息,是不是很簡單,然后試一下吧。重點提醒:換一個其他網址也同樣適用哦。
轉發此文到朋友圈,并截圖到后臺,
獲得本文源代碼
長按二維碼,關注我們返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的iphone看python文件_Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python双精度浮点数怎么写_Pyth
- 下一篇: python用pil图像放大缩小_pyt