使用python抓取58手機維修資訊

yupeng發表於2013-10-01

之前在ququ的部落格上看到說 python 中的BeautifulSoup 挺好玩的,今天下午果斷下載下來,看了下api,挺好用的,完了2把,不錯。

晚上寫了一個使用python抓取58手機維修資訊的精準的商家資訊:

廢話不多說了,直接上程式碼:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import urllib

import os,datetime,string

import sys

from bs4 import BeautifulSoup

reload(sys)

sys.setdefaultencoding('utf-8')

__BASEURL__ = 'http://bj.58.com/'

__INITURL__ = "http://bj.58.com/shoujiweixiu/"

soup = BeautifulSoup(urllib.urlopen(__INITURL__))

lvlELements = soup.html.body.find('div','selectbarTable').find('tr').find_next_sibling('tr')('a',href=True)

f = open('data1.txt','a')

for element in lvlELements[1:]:

    f.write((element.get_text()+'\n\r' ))

    url = __BASEURL__ + element.get('href')

    print url

    soup = BeautifulSoup(urllib.urlopen(url))

    lv2ELements = soup.html.body.find('table','tblist').find_all('tr')

    for item in lv2ELements:
        addr = item.find('td','t').find('a').get_text()
        phone = item.find('td','tdl').find('b','tele').get_text()
        f.write('地址:'+addr +' 電話:'+ phone + '\r\n\r')

f.close()

直接執行後,存在 data1.txt中就會有商家的地址和電話等資訊。

BeautifulSoup  api 的地址為: http://www.crummy.com/software/BeautifulSoup/bs4/doc/

---end---

相關文章