Python爬虫方法三部曲之二-实战训练

        前面学习的爬虫的方法,马上利用到实战中,抓取某网站的信息。使用bs、request的方法进行数据的抓取。主要分享一些实战的经验和总结,此文章抓取数据用于分享。(注意不要乱爬取数据用于商业用途谋私,遵纪守法向来是我们应当守则义务。)

一、首先request的方法和BeautifulSoup的方法架构必须熟悉,方法也懂基本的使用。

二、代码的架构是先定义一个函数,在函数里面传送抓取的网站的url,使用requests方法抓取到网站内部的信息,获取网站的源码。如果感兴趣的同学可以打印去html的参数,看看源码的架构和数据。

三、使用bs中select方法抓取网站源码节点的数据、bs中Select的方法要熟悉。

四、用遍历的for循环抓取每个节点的标签,比如p、a、span的标签属性下面的数值。

如果有人知道的话,可以告诉我为什么**** ==$0 ,****的值抓不出来,试了正则和bs方法都不行。我果断放弃了。

注意:抓取的源码可能会时时变化,使用select的方法抓取源码数据时,记得打印出来查看是否含有数据,如果没有,则需要调整代码架构。有几次前一天可以抓取到数据源码,但是隔一天就不行了。

五、增加分隔符和文字,将整个代码结果展现好一些。(后期有时间和精力在将数据存入数据库或者使用panda、scipy来做表格。)

谢谢关注。

参考文献:Python网络爬虫入门篇 - z寒江雪 - 博客园


案例展示:

import requests
import urllib.request
from bs4 import BeautifulSoup

def get_html(url):
    headers = {
        'User-Agent': 'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\
        AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36'

    }  # 模拟浏览器访问
    response = requests.get(url, headers=headers)  # 请求访问网站
    html = response.text  # 获取网页源码
    return html  # 返回网页源码

get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input')
soup = BeautifulSoup(get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input'), 'lxml')  # 初始化BeautifulSoup库,并设置解析器
text = soup.select('#search_nature_rg > ul.bigimg > li > a ')#只定为到末级,中间不算。
content3 = soup.select('#search_nature_rg > ul > li > div.lable_label > span.new_lable ')#定义自营门店,由于span标签特殊。抓取不到span标签的特殊值。
content = soup.select('#search_nature_rg > ul.bigimg > li > a > img')#定义图片路径
content2 = soup.select('#search_nature_rg > ul.bigimg > li > p.search_star_line > a')#店铺商品评论数
content4 = soup.select('#search_nature_rg > ul > li > p.search_shangjia > a')#店铺名字
price_number1 = soup.select('#search_nature_rg > ul > li.line1 > p.price > span')#图书价格
price_number2 = soup.select('#search_nature_rg > ul > li.line2 >div.ebook_buy>p>span')#图书价格
price_number3 = soup.select('#search_nature_rg > ul > li.line3 >p.price>span')#图书价格,只有销售价格
price_number4 = soup.select('#search_nature_rg > ul > li.line4 > p.price > span')#图书价格
price_number5 = soup.select('#search_nature_rg > ul > li.line5 > p.price > span')#图书价格
price_number6 = soup.select('#search_nature_rg > ul > li.line6 > p.price > span')#图书价格
price_number7 = soup.select('#search_nature_rg > ul > li.line7 > p.price > span')#图书价格
price_number8 = soup.select('#search_nature_rg > ul > li.line8 > p.price > span')#图书价格
price_number9 = soup.select('#search_nature_rg > ul > li.line9 > p.price > span')#图书价格
price_number10 = soup.select('#search_nature_rg > ul > li.line10 > p.price > span')#图书价格




print("抓取商铺的详情页和标题:")
for n in text:
    link = n.get('href')
    title = n.get('title')
    print("图书详情页和标题:",link,title)


print("抓取图片的地址:")
for n in content:
    pic = n.get('src')
    tag = n.text#抓取标签
    print("图片地址:",pic)

print("抓取商品评论数:")
for n in content2:
    tag=n.text
    if tag == 0:
        print("此商店无评论人")
    else:
        print("评论数:", tag)

print("店铺种类:")
for n in content3:
    name=n.text
    print (name)
    if name == 1:
        print("自营店面")#自营店的值抓不到。所以一直呈现私营店面
    else:
        for i in content4:
            name = i.text
            print("私营图书:",name)

print("店铺销售价格及折扣:")
a=[]
for n in price_number1:
    span=n.text
    a.append(span)
print("第1家店铺销售情况:")
print("销售价格:",a[0])
print("原来价格:",a[1])
print("打折比例:",a[2])

b=[]
for n in price_number2:
    span=n.text
    b.append(span)
print("第2家店铺销售情况:")
print("销售价格:",b[0])
# print("原来价格:",b[1])
# print("打折比例:",b[2])

c=[]
for n in price_number3:
    span=n.text
    c.append(span)
print("第3家店铺销售情况:")
print("销售价格:",c[0])
print("原来价格:",c[1])
# print("打折比例:",c[2])

d=[]
for n in price_number4:
    span=n.text
    d.append(span)
print("第4家店铺销售情况:")
print("销售价格:",d[0])
print("原来价格:",d[1])
print("打折比例:",d[2])

e=[]
for n in price_number5:
    span=n.text
    e.append(span)
print("第5家店铺销售情况:")
print("销售价格:",e[0])
print("原来价格:",e[1])
print("打折比例:",e[2])

f=[]
for n in price_number6:
    span=n.text
    f.append(span)
print("第6家店铺销售情况:")
print("销售价格:",f[0])
print("原来价格:",f[1])
print("打折比例:",f[2])

g=[]
for n in price_number7:
    span=n.text
    g.append(span)
print("第7家店铺销售情况:")
print("销售价格:",g[0])
print("原来价格:",g[1])
print("打折比例:",g[2])

h=[]
for n in price_number8:
    span=n.text
    h.append(span)
print("第8家店铺销售情况:")
print("销售价格:",h[0])
print("原来价格:",h[1])
print("打折比例:",h[2])

i=[]
for n in price_number9:
    span=n.text
    i.append(span)
print("第9家店铺销售情况:")
print("销售价格:",i[0])
print("原来价格:",i[1])
print("打折比例:",i[2])

j=[]
for n in price_number10:
    span=n.text
    j.append(span)
print("第10家店铺销售情况:")
print("销售价格:",j[0])
print("原来价格:",j[1])
print("打折比例:",j[2])

结果展示: 

C:\Users\Administrator\Anaconda3\python.exe F:/untitled2_analysis/analysis_test/book_getdata.py
抓取商铺的详情页和标题:
图书详情页和标题: //product.dangdang.com/29343617.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/1901285938.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/29344138.html  重返狼群背后的故事(当当专享签名本)
图书详情页和标题: //product.dangdang.com/11055037207.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11054207877.html  重返狼群背后的故事 一部“人狼情未了”的旷世传奇,一份难以割舍、恒以在怀的牵挂
图书详情页和标题: //product.dangdang.com/11094530971.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11122830888.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L
图书详情页和标题: //product.dangdang.com/11070949156.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐
图书详情页和标题: //product.dangdang.com/11109201793.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11081533840.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11086661163.html  重返狼群背后的故事【正版保证】
图书详情页和标题: //product.dangdang.com/11053921268.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11106899051.html  【全新速发】重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐Z
图书详情页和标题: //product.dangdang.com/11094534101.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11109684439.html  重返狼群背后的故事 李微漪红娟/ 9787573002693
图书详情页和标题: //product.dangdang.com/11080822814.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11028514723.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐
图书详情页和标题: //product.dangdang.com/11118911082.html  【全新】重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L
图书详情页和标题: //product.dangdang.com/11052958360.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11098533507.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐MM 213 978
图书详情页和标题: //product.dangdang.com/11093667219.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐
图书详情页和标题: //product.dangdang.com/11090511769.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 李微漪 红娟/著
图书详情页和标题: //product.dangdang.com/11083420138.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11081434885.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐
图书详情页和标题: //product.dangdang.com/11057789612.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11062864767.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11096513173.html  重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐
图书详情页和标题: //product.dangdang.com/11052954980.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11123839217.html  全新重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L
图书详情页和标题: //product.dangdang.com/11102125424.html  【诺拉图书】正版重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11061066098.html  正版书籍 重返狼群背后的故事 一部人狼情未了的旷世传奇 一份难以割舍恒以在怀的牵挂 一段探寻人与自然和谐之道的路径
图书详情页和标题: //product.dangdang.com/11056613528.html  重返狼群【3册】重返狼群背后的故事+重返狼群:再见格林 (被人类抚养长大的狼,回归自然将面临怎样的命
图书详情页和标题: //product.dangdang.com/11115153382.html  9787573002693 重返狼群背后的故事 李微漪红娟 著 海南出版社 枫林苑图书专营店 数量:
图书详情页和标题: //product.dangdang.com/11113675426.html  9787573002693 重返狼群背后的故事 李微漪红娟 著 海南出版社 数量:
图书详情页和标题: //product.dangdang.com/11125634888.html  重返狼群正版全3册彩绘注音版本任选城市流浪李微漪荒野求生回归家园10-12岁儿童文学动物小说让我陪你千里寻你重返狼群背后
图书详情页和标题: //product.dangdang.com/11104741576.html  重返狼群背后的故事 李微漪红娟 著 9787573002693 海南出版社【直发】 达额立减 闪电发货 80%城市次日达
图书详情页和标题: //product.dangdang.com/11094536371.html  重返狼群背后的故事
图书详情页和标题: //product.dangdang.com/11083419738.html  重返狼群背后的故事
抓取图片的地址:
图片地址: //img3m7.ddimg.cn/17/27/29343617-1_b_11.jpg
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
图片地址: images/model/guan/url_none.png
抓取商品评论数:
评论数: 1299条评论
评论数: 76条评论
评论数: 1013条评论
评论数: 1条评论
评论数: 1条评论
店铺种类:

私营图书: 龙飞东方文化图书专营店
私营图书: 一笔文化图书专营店
私营图书: 杰尼特文化图书专营店
私营图书: 昌世永乐图书专营店
私营图书: 新学图书专营店
私营图书: 翰林中天图书专营店
私营图书: 北京永贤图书专营店
私营图书: 阳光前行图书专营店
私营图书: 点溪图书专营店
私营图书: 博雅文化图书专营店
私营图书: 金楼博阅图书专营店
私营图书: 红书简图书专营店
私营图书: 荷露茗图书专营店
私营图书: 探月文化图书专营店
私营图书: 建工图书专营店
私营图书: 超创时代图书专营店
私营图书: 鼎美文化图书专营店
私营图书: 古韵书香图书专营店
私营图书: 聚知图书专营店
私营图书: 北京金楼博阅图书专营店
私营图书: 一越图书专营店
私营图书: 金瑞达图书专营店
私营图书: 天涯书友图书专营店
私营图书: 昌盛图书专营店
私营图书: 逸文图书专营店
私营图书: 瑞银图书专营店
私营图书: 诺拉图书专营店
私营图书: 玉海顺虹图书专营店
私营图书: 点溪图书专营店
私营图书: 枫林苑图书专营店
私营图书: 北京枫林苑图书专营店
私营图书: 轩然书香图书专营店
私营图书: 道正图书专营店
私营图书: 费芸图书专营店
私营图书: 京齐图书专营店

私营图书: 龙飞东方文化图书专营店
私营图书: 一笔文化图书专营店
私营图书: 杰尼特文化图书专营店
私营图书: 昌世永乐图书专营店
私营图书: 新学图书专营店
私营图书: 翰林中天图书专营店
私营图书: 北京永贤图书专营店
私营图书: 阳光前行图书专营店
私营图书: 点溪图书专营店
私营图书: 博雅文化图书专营店
私营图书: 金楼博阅图书专营店
私营图书: 红书简图书专营店
私营图书: 荷露茗图书专营店
私营图书: 探月文化图书专营店
私营图书: 建工图书专营店
私营图书: 超创时代图书专营店
私营图书: 鼎美文化图书专营店
私营图书: 古韵书香图书专营店
私营图书: 聚知图书专营店
私营图书: 北京金楼博阅图书专营店
私营图书: 一越图书专营店
私营图书: 金瑞达图书专营店
私营图书: 天涯书友图书专营店
私营图书: 昌盛图书专营店
私营图书: 逸文图书专营店
私营图书: 瑞银图书专营店
私营图书: 诺拉图书专营店
私营图书: 玉海顺虹图书专营店
私营图书: 点溪图书专营店
私营图书: 枫林苑图书专营店
私营图书: 北京枫林苑图书专营店
私营图书: 轩然书香图书专营店
私营图书: 道正图书专营店
私营图书: 费芸图书专营店
私营图书: 京齐图书专营店

私营图书: 龙飞东方文化图书专营店
私营图书: 一笔文化图书专营店
私营图书: 杰尼特文化图书专营店
私营图书: 昌世永乐图书专营店
私营图书: 新学图书专营店
私营图书: 翰林中天图书专营店
私营图书: 北京永贤图书专营店
私营图书: 阳光前行图书专营店
私营图书: 点溪图书专营店
私营图书: 博雅文化图书专营店
私营图书: 金楼博阅图书专营店
私营图书: 红书简图书专营店
私营图书: 荷露茗图书专营店
私营图书: 探月文化图书专营店
私营图书: 建工图书专营店
私营图书: 超创时代图书专营店
私营图书: 鼎美文化图书专营店
私营图书: 古韵书香图书专营店
私营图书: 聚知图书专营店
私营图书: 北京金楼博阅图书专营店
私营图书: 一越图书专营店
私营图书: 金瑞达图书专营店
私营图书: 天涯书友图书专营店
私营图书: 昌盛图书专营店
私营图书: 逸文图书专营店
私营图书: 瑞银图书专营店
私营图书: 诺拉图书专营店
私营图书: 玉海顺虹图书专营店
私营图书: 点溪图书专营店
私营图书: 枫林苑图书专营店
私营图书: 北京枫林苑图书专营店
私营图书: 轩然书香图书专营店
私营图书: 道正图书专营店
私营图书: 费芸图书专营店
私营图书: 京齐图书专营店
店铺销售价格及折扣:
第1家店铺销售情况:
销售价格: ¥21.60
原来价格: ¥48.00
打折比例:  (4.5折) 
第2家店铺销售情况:
销售价格: ¥21.50
第3家店铺销售情况:
销售价格: ¥21.60
原来价格: ¥48.00
第4家店铺销售情况:
销售价格: ¥36.00
原来价格: ¥48.00
打折比例:  (7.5折) 
第5家店铺销售情况:
销售价格: ¥33.10
原来价格: ¥48.00
打折比例:  (6.9折) 
第6家店铺销售情况:
销售价格: ¥45.60
原来价格: ¥48.00
打折比例:  (9.5折) 
第7家店铺销售情况:
销售价格: ¥37.00
原来价格: ¥48.00
打折比例:  (7.71折) 
第8家店铺销售情况:
销售价格: ¥45.54
原来价格: ¥48.00
打折比例:  (9.49折) 
第9家店铺销售情况:
销售价格: ¥26.00
原来价格: ¥47.65
打折比例:  (5.46折) 
第10家店铺销售情况:
销售价格: ¥29.12
原来价格: ¥48.00
打折比例:  (6.07折) 

Process finished with exit code 0

你可能感兴趣的:(爬虫,python开发,python数据分析,python,数据挖掘,数据分析)