码迷,mamicode.com
首页 > 其他好文 > 详细

赶集网二手数据.py

时间:2016-11-12 23:31:22      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:gen   app   localhost   web   split   span   use   insert   mozilla   

#获取所有二手频道链接
import requests
from bs4 import BeautifulSoup

star_url = http://bj.ganji.com/wu/
url_host = http://bj.ganji.com
page_url = []
def get_index_url(url):
    wb_data = requests.get(url)
    if wb_data.status_code == 200:
        soup = BeautifulSoup(wb_data.text,lxml)
        links =soup.select(dl.fenlei > dt > a)
        for link in links:
            all_list = url_host + link.get(href)
            page_url.append(all_list)
        return page_url
    else:
        pass

get_index_url(star_url)



#获取所有频道里面的子链接
from bs4 import BeautifulSoup
from multiprocessing import Pool
from channel_exciting import page_url
import requests
import pymongo

client = pymongo.MongoClient(localhost,27017)
ganji = client[ganji]
url_list = ganji[url_list]
item_info = ganji[item_info]


headers = {
    user_agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36,
    Connection:keep-alive
}

def get_links_from(channel,page):
    #http://bj.ganji.com/jiaju/o3/
    url_host = {}o{}.format(channel,str(page))
    wb_data = requests.get(url_host,headers=headers)
    soup = BeautifulSoup(wb_data.text,lxml)
    for link in soup.select(td a,t):
        item_link = link.get(href).split(?)[0]
        if wb_data.status_code != 200:
            pass
        else:
            url_list.insert_one({url:item_link})
    print(url_list)

def get_all_links(channel):
    for i in range(1,100):
        get_links_from(channel,i)

if __name__ == __main__:
    list = []
    for item in page_url:
        list.append(item)
    pool = Pool()
    pool.map(get_all_links,list)


#获取所有子链接里面的数据
from multiprocessing import Pool
from page_parsing import url_list
from bs4 import BeautifulSoup
import requests
import pymongo
import time

client = pymongo.MongoClient(localhost,27017)
ganji = client[ganji]
item_info = ganji[item_info]

headers = {
    user_agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36,
    Connection:keep-alive
}


def get_items_info(url):
    wb_data = requests.get(url,headers=headers)
    soup = BeautifulSoup(wb_data.text, lxml)
    try:
        data={
            title:soup.title.text,
            price:soup.select(span.price_now > i)[0].text,
            area:soup.select(div.palce_li > span > i)[0].text,
            url:url
        }
        item_info.insert_one(data)
    except IndexError:
        pass
    else:
        print(data)
        time.sleep(2)


if __name__ == __main__:
    list = []
    for item in url_list.find():
        list.append(item[url])
    pool = Pool()
    pool.map(get_items_info,list)

 

赶集网二手数据.py

标签:gen   app   localhost   web   split   span   use   insert   mozilla   

原文地址:http://www.cnblogs.com/dws-love-jfl-1314/p/6057691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!