python treeview底部加個按鈕_Python爬取京東商品信息(GUI版本)

前言

本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。

作者:DYblog

轉載:https://www.cnblogs.com/dy8888/p/13257918.html

PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取

aa5909bb821b9b5212d476be36943f8d.png

python免費資料已上傳到學習交流群,可自行下載獲取

python學習交流群,點擊即可加入

下面直接上代碼,看不懂的可以看這篇文章或者注釋來學習

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#written by DY
#http://dyblog.tk
#e-mail:duyun888888@qq.com
########import###############
import requests
from bs4 import BeautifulSoup
#from openpyxl import *#寫入表格使用,寫入txt時報錯
import time
from tkinter import * 
import tkinter.messagebox
from  tkinter import ttk
########import結束#############----------全局變量-----------
https = 'https:'
headers = {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.16 Safari/537.36",
}#定義頭部信息,防止被網站阻止
name = []
price = []
introduct = []
urlss = []
#----------全局變量結束-------#===============函數區域==============
#--------圖形界面函數開始--------
def genxin():top = Tk()top.title("'%s'在'京東'中查詢結果"%E1.get())top.geometry("800x600+600+100")columns = ("物品名", "價格", "簡介", "鏈接")treeview = ttk.Treeview(top, show="headings", columns=columns, height='100')treeview.column("物品名", width=200, anchor='center')treeview.column("價格", width=50, anchor='center')treeview.column("簡介", width=200, anchor='center')treeview.column("鏈接", width=50, anchor='center')treeview.heading("物品名", text="物品名")treeview.heading("價格", text="價格")treeview.heading("簡介", text="簡介")treeview.heading("鏈接", text="鏈接")treeview.pack()print(name)print(price)print(introduct)print(urlss)for write_ in range(min(len(name),len(price),len(introduct),len(urlss))): # 寫入數據treeview.insert('', write_, values=(name[write_], price[write_], introduct[write_], urlss[write_]))top.mainloop()
#--------圖形界面函數結束--------def searchstart():#打開頁面查找,獲取htmlurl='https://search.jd.com/Search?keyword='+E1.get()url = str(url)html = requests.get(url,headers=headers).text#打開鏈接,獲取htmlsoup = BeautifulSoup(html, 'html.parser')for div in soup.find_all('div',class_="ml-wrap"):#包含價格,銷量,商品,頁數for shangpin in div.find_all('div',class_="goods-list-v2 gl-type-1 J-goods-list"):for prices in shangpin.find_all('div',class_="p-price"):#商品價格for pricess in prices.find_all('i'):if pricess=='':pricess='無'price.append(pricess.text)for shangpin in div.find_all('div',class_="goods-list-v2 gl-type-1 J-goods-list"):#商品for name_ in shangpin.find_all('div',class_="p-name p-name-type-2"):for titlename in name_.find_all('em'):#簡介if titlename=='':titlename='無'introduct.append(titlename.text)for name_ in shangpin.find_all('div',class_="p-name p-name-type-2"):for introduction in name_.find_all('a',target="_blank"):#商品名introduction = introduction.get('title')if introduction=='':introduction='無'name.append(introduction)for url in shangpin.find_all('div',class_="p-name p-name-type-2"):for urls in url.find_all('a'):urlss.append(https+urls['href'])print(introduct)print(name)genxin()
#===============函數區域結束==========##########圖形界面開始#########
root = Tk()
root.title('京東商品 查詢')
root.geometry('250x160')
L1 = Label(root, text="商品名: ")
L1.place(x = 5,y = 15)
E1 = Entry(root, bd =2)
E1.place(x = 60,y = 15)A = Button(root, text ="確定",font=('Arial', 12), width=10, height=1,command=searchstart)
A.place(x = 350,y = 10)#確定按鈕root.mainloop()
###########圖形界面結束#########
#written by DY
#http://dyblog.tk
#e-mail:duyun888888@qq.com

運行截圖:

89bff9160399f2df168ba623d4c3b8ab.png

7ecd0117be34cb910c6affd3edf7bdc3.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276168.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下編譯安裝Mysql簡單步驟

常規方式編譯安裝MySQL時,適合用第一條最正宗的MySQL產品線5.2及以前版本:所謂常規方式編譯安裝MySQL就是延續早期MySQL的3部曲安裝方式,即./configure;make;make install,下面是老男孩在早期的企業生產場景下操作過的具體命令及參…

Vue.js 3.0 響應式 API 比 2.x 好在哪兒?

Hello,各位小伙伴,接下來的一段時間里,我會把我的課程《Vue.js 3.0 核心源碼解析》中問題的答案陸續在我的公眾號發布,由于課程的問題大多數都是開放性的問題,所以我的答案也不一定是標準的,僅供你參考喔。…

招聘.NET程序員

人才難找啊,順便發個招聘啟事。 西安瀚博科技有限公司招聘.NET程序員,有工作經驗者優先 如有意向,請發郵件到 slzhanghiweb.cn 轉載于:https://www.cnblogs.com/shengli/archive/2010/03/08/1680861.html

xml解析類

轉載鏈接:http://zyan.cc/post/253 今天在PHP4環境下重新寫一個接口程序,需要大量分析解析XML,PHP的xml_parse_into_struct()函數不能直接生成便于使用的數組,而SimpleXML擴展在PHP5中才支持,于是逛逛搜索引擎&#x…

jmeter學習指南之聚合報告

jmeter視頻地址:https://edu.51cto.com/course/14305.html 上一篇文章中我們講了Jmeter結果分析最常用的一個Listener查看結果樹,今天接著講另一個最常用的listener--聚合報告Aggregate Report。我們先來看看聚合報告中的主要名稱的含意:Labe…

敏捷開發概述

敏捷方法強調適應性而非預見性。 目前列入敏捷方法的有: 軟件開發節奏,Software Development Rhythms 敏捷數據庫技術,AD/Agile Database Techniques 敏捷建模,AM/Agile Modeling 自適應軟件開發,ASD/Adaptive Softwar…

2021 整理的最全學習資源,送給每一個努力著的人

時間來到了 2021 年,新的一年有新的期待,而我亦有新的祝福如果說在過去的一年,經歷太多,心酸、迷茫、焦慮、幸福、喜悅那么在 2021 年,希望你可以去過一種遇見自己的生活,恬淡、熱情,喜歡自己而…

ubuntu+php環境下的Memcached 安裝方法

轉載鏈接:http://www.jb51.net/article/28887.htm Memcached是一套分散式的高速緩存系統,當初是Danga Interactive為了LiveJournal所發展。 目前被很多系統所使用,例如Flick、Twitter等。這是一套開放源代碼軟件,以BSD license授…

php移動簽批源碼_PHP讓網站移動訪問更加友好方法

PHP都是在服務器上處理的,所以當代碼到達用戶時,它只是HTML。基本上,用戶從你的服務器請求你網站的一個頁面,然后你的服務器運行所有的PHP并向用戶發送PHP的結果。設備實際上從未看到或必須使用實際的PHP代碼。這使得使用PHP完成的…

Chrome OS 設備或將允許用戶自行選擇 Linux 發行版

百度智能云 云生態狂歡季 熱門云產品1折起>>> 谷歌去年宣布在 Chrome OS 上支持運行 Linux 應用,前不久又有消息稱其將為運行這些 Linux 應用提供 GPU 加速支持,而現在,Chrome OS 似乎將在 Linux 的方向上更進一步,讓 …

博文視點 OpenParty第11期:世界黑客大會那些事

博文視點 OpenParty第11期:世界黑客大會那些事 親愛的讀者朋友: 您好! 2009年,博文視點Open Party共舉辦8場,累計到場2000人次,影響力輻射近5000人次,真正實現了博文視點Open Party的初…

我從 Vuejs 中學到了什么——框架設計學問

框架設計遠沒有大家想的那么簡單,并不是說只把功能開發完成,能用就算完事兒了,這里面還是有很多學問的。比如說,我們的框架應該給用戶提供哪些構建產物?產物的模塊格式如何?當用戶沒有以預期的方式使用框架…

CSS制作的32種圖形效果[梯形|三角|橢圓|平行四邊形|菱形|四分之一圓|旗幟]

轉載鏈接:http://www.w3cplus.com/css/css-simple-shapes-cheat-sheet 前面在《純CSS制作的圖形效果》一文中介紹了十六種CSS畫各種不同圖形的方法。今天花了點時間將這方面的制作成一份清單,方便大家急用時有地方可查。別的不多說了,直接看代…

vue-cli新建的項目webpack設置涉及的大部分插件整理

portfinder 用來檢測未占用的端口更多看這里: https://www.npmjs.com/package/portfinder webpack-merge 用來合并多個webpack設置,也可以合并對象更多看這里: https://www.npmjs.com/package/friendly-errors-webpack-plugin html-webpack-plugin 將html復制并插入…

yaml加配置文件后起不來_YAML配置文件管理資源

YAML是配置文件的格式,YAML文件中是由一些易讀的字段和指令組成的。K8S使用YAML配置文件需要注意如下事項。定義配置時,指定最新穩定版API(當前最新穩定版是v1版本)。最新版本的API可以通過kubectl api-versions命令進行查看,命令如下所示。前…

html5/css3響應式布局介紹

轉載鏈接:http://www.51xuediannao.com/htmlcss/htmlcssjq/694.html html5/css3響應式布局介紹 html5/css3響應式布局介紹及設計流程,利用css3的media query媒體查詢功能。移動終端一般都是對css3支持比較好的高級瀏覽器不需要考慮響應式布局的媒體查詢…

人際關系十大要訣

【一表人才】 所謂“一表人才”,就是說當你與陌生人第一次見面時給對方留下的第一印象,我們都知道第一印象很重要,要給對方留下好的印象,特別是要讓對方在最短的時間記住你。那么我們自身的儀表、行為舉止都很重要;我們…

MobX 上手指南,寫 Vue 的感覺?

之前用 Redux 比較多,一直聽說 Mobx 能讓你體驗到在 React 里面寫 Vue 的感覺,今天打算嘗試下 Mobx 是不是真的有寫 Vue 的感覺。題外話在介紹 MobX 的用法之前,先說點題外話,我們可以看一下 MobX 的中文簡介。在 MobX 的中文網站…

ansible中yaml語法應用

4、yaml語法應用 ansible的playbook編寫是yaml語言編寫,掌握yaml語法是編寫playbook的必要條件,格式要求和Python相似,具體教程參考如下yaml語言教程 附上一個yaml文件轉js格式文件鏈接在線免費yaml內容轉json格式 4.1、 ansible中的yaml語法…

中興a2018拆機圖片_中興天機拆機步驟詳解【圖文】

中興天機上市時有兩款,黑色和白色。黑色的缺點是外觀過于傳統,并不是很適合年輕人使用,但是其推出白色款卻很好的解決了這個問題。中興天機的整體性質與性價比完美的拼過了 小米 3等同時上線的手機產品。中興天機價格在1799左右,小…