from bs4 import BeautifulSoup
import lxml
import time
import requests
base_url = 'http://bj.58.com/pbdn/0/pn'
def get_website(url): #爬取每件商品网址,最后执行爬取详细信息函数
response = requests.get(url)
time.sleep(2)
soup = BeautifulSoup(response.text,'lxml')
# wb_sites = soup.select('#infolist > div.infocon > table > tbody > tr.jztr > td.img > a')
wb_sites = soup.select('#infolist > div.infocon > table > tbody > tr.zzinfo > td.img > a') #除了推广商品,剩下的都是转转商品;没有发现题目要求的正常商品。所以此处改为抓取转转商品
for wb_site in wb_sites:
href = wb_site.get('href')
get_details(href)
def get_details(href): #爬取每件商品详细信息
time.sleep(2)
response = requests.get(href)
soup = BeautifulSoup(response.text,'lxml')
cates = soup.select('#nav > div.breadCrumb.f12')
items = soup.select('body > div.content > div > div.box_left > div.info_lubotu.clearfix > div.box_left_top > h1')
prices = soup.select('body > div.content > div > div.box_left > div.info_lubotu.clearfix > div.info_massege.left > div.price_li > span > i')
areas = soup.select('body > div.content > div > div.box_left > div.info_lubotu.clearfix > div.info_massege.left > div.palce_li > span > i')
views = soup.select('body > div.content > div > div.box_left > div.info_lubotu.clearfix > div.box_left_top > p > span.look_time')
for cate, item, price, area, view in zip(cates, items, prices, areas, views):
data = {
'cate' : list(cate.stripped_strings),
'item' : item.get_text(),
'price' : price.get_text(),
'area' : area.get_text(),
'view' : view.get_text()
}
print(data)
for page_number in range(1,5): #爬取前五页信息
url = base_url + str(page_number)
get_website(url)
第一周作业
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 习题1: 加分题:多打印一行答:Print (‘\n’) 加分题:在一行的起始位置放一个 ‘#’符号,它的作用是什...