學(xué)習(xí)python的第四天

# 目標(biāo)站點(diǎn)地址
url = 'http://search.dangdang.com/?key={}&act=input'.format(isbn)
# print(url)
# 獲取站點(diǎn)str類型的響應(yīng)
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"}

resp = requests.get(url, headers=headers)
html_data = resp.text
#  將html頁面寫入本地
# with open('dangdang.html', 'w', encoding='utf-8') as f:
#     f.write(html_data)

# 提取目標(biāo)站的信息
selector = html.fromstring(html_data)
ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
print('您好沮峡,共有{}家店鋪售賣此圖書'.format(len(ul_list)))

# 遍歷 ul_list
for li in ul_list:
    #  圖書名稱
    title = li.xpath('./a/@title')[0].strip()
    print(title)
    #  圖書購買鏈接
    link = li.xpath('a/@href')[0]
    print(link)
    #  圖書價格
    price = li.xpath('./p[@class="price"]/span[@class="search_now_price"]/text()')[0]
    price = float(price.replace('¥',''))
    print(price)
    # 圖書賣家名稱
    store = li.xpath('./p[@class="search_shangjia"]/a/text()')
    # if len(store) == 0:
    #     store = '當(dāng)當(dāng)自營'
    # else:
    #     store = store[0]
    store = '當(dāng)當(dāng)自營' if len(store) == 0 else store[0]
    print(store)

-- coding: utf-8 --

@Time : 2019/7/31 11:28

@Author : Eric Lee

@Email : li.yan_li@neusoft.com

@File : spider_dangdang.py

@Software: PyCharm

import requests
from lxml import html
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["font.sans-serif"] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def spider_dangdang(isbn):
book_list = []
# 目標(biāo)站點(diǎn)地址
url = 'http://search.dangdang.com/?key={}&act=input'.format(isbn)
# print(url)
# 獲取站點(diǎn)str類型的響應(yīng)
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"}

resp = requests.get(url, headers=headers)
html_data = resp.text
#  將html頁面寫入本地
# with open('dangdang.html', 'w', encoding='utf-8') as f:
#     f.write(html_data)

# 提取目標(biāo)站的信息
selector = html.fromstring(html_data)
ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
print('您好,共有{}家店鋪售賣此圖書'.format(len(ul_list)))

# 遍歷 ul_list
for li in ul_list:
    #  圖書名稱
    title = li.xpath('./a/@title')[0].strip()
    # print(title)
    #  圖書購買鏈接
    link = li.xpath('a/@href')[0]
    # print(link)
    #  圖書價格
    price = li.xpath('./p[@class="price"]/span[@class="search_now_price"]/text()')[0]
    price = float(price.replace('¥',''))
    # print(price)
    # 圖書賣家名稱
    store = li.xpath('./p[@class="search_shangjia"]/a/text()')
    # if len(store) == 0:
    #     store = '當(dāng)當(dāng)自營'
    # else:
    #     store = store[0]
    store = '當(dāng)當(dāng)自營' if len(store) == 0 else store[0]
    # print(store)

    # 添加每一個商家的圖書信息
    book_list.append({
        'title':title,
        'price':price,
        'link':link,
        'store':store
    })


# 按照價格進(jìn)行排序
book_list.sort(key=lambda x:x['price'])

# 遍歷booklist
for book in book_list:
    print(book)

# 展示價格最低的前10家 柱狀圖
# 店鋪的名稱
top10_store = [book_list[i] for i in range(10)]
# x = []
# for store in top10_store:
#     x.append(store['store'])
x = [x['store'] for x in top10_store]
print(x)
# 圖書的價格
y = [x['price'] for x in top10_store]
print(y)
# plt.bar(x, y)
plt.barh(x, y)
plt.show()


# 存儲成csv文件


df = pd.DataFrame(book_list)
df.to_csv('dangdang.csv')

爬蟲

1寞酿、爬蟲基礎(chǔ)

1.1匠襟、獲取網(wǎng)址

url='https://www.baidu.com'
response=requests.get(url)

1.2钝侠、獲取str類型的響應(yīng)

print(response.text)

1.3、獲取bytes類型的響應(yīng)

print(response.content)

1.4酸舍、獲取響應(yīng)頭

print(response.headers)

1.5帅韧、獲取狀態(tài)碼

print(response.status_code)

1.6、返回200成功啃勉,400未找到忽舟,500服務(wù)器錯誤

1.7、響應(yīng)頭用以偽裝成瀏覽器

#沒有添加響應(yīng)頭
# resp=requests.get('https://www.zhihu.com/')
# print(resp.status_code)
#運(yùn)行返回400

#使用字典定義請求頭
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
resp=requests.get('https://pvp.qq.com/')
print(resp.status_code)
#運(yùn)行返回200

2、靜態(tài)網(wǎng)頁爬蟲

2.1萧诫、導(dǎo)入lxml庫

from lxml import html

2.2、打開并讀取本地html文件

with open('./index.html','r',encoding='utf-8') as f:
    html_data=f.read()
    print(html_data)

2.3枝嘶、解析html文件帘饶,獲取selector對象

    selector =html.fromstring(html_data)
    #要獲取標(biāo)簽內(nèi)容,末尾要添加text()
    h1=selector.xpath('/html/body/h1/text()')
    print(h1[0])

2.4群扶、//表示可以代表任意位置出發(fā)

#//標(biāo)簽1[@屬性=屬性值]/標(biāo)簽2[@屬性=屬性值]..../text()
a=selector.xpath('//div[@id="container"]/a/text()')
print(a)

3及刻、動態(tài)網(wǎng)頁爬蟲(當(dāng)當(dāng)網(wǎng)和電影網(wǎng))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市竞阐,隨后出現(xiàn)的幾起案子缴饭,更是在濱河造成了極大的恐慌,老刑警劉巖骆莹,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颗搂,死亡現(xiàn)場離奇詭異,居然都是意外死亡幕垦,警方通過查閱死者的電腦和手機(jī)丢氢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來先改,“玉大人疚察,你說我怎么就攤上這事〕鹉蹋” “怎么了貌嫡?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長该溯。 經(jīng)常有香客問我岛抄,道長,這世上最難降的妖魔是什么朗伶? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任弦撩,我火速辦了婚禮,結(jié)果婚禮上论皆,老公的妹妹穿的比我還像新娘益楼。我一直安慰自己,他們只是感情好点晴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布感凤。 她就那樣靜靜地躺著,像睡著了一般粒督。 火紅的嫁衣襯著肌膚如雪陪竿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音族跛,去河邊找鬼闰挡。 笑死,一個胖子當(dāng)著我的面吹牛礁哄,可吹牛的內(nèi)容都是我干的长酗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼桐绒,長吁一口氣:“原來是場噩夢啊……” “哼夺脾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茉继,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤咧叭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烁竭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菲茬,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年派撕,在試婚紗的時候發(fā)現(xiàn)自己被綠了生均。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡腥刹,死狀恐怖马胧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衔峰,我是刑警寧澤佩脊,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站垫卤,受9級特大地震影響威彰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜穴肘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一歇盼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧评抚,春花似錦豹缀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侍匙,卻和暖如春氮惯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工妇汗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帘不,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓杨箭,卻偏偏與公主長得像厌均,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子告唆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容