BS4+Openpyxl循环爬取114网站黄页信息存入excel + tinker界面输入(开源代码)

news/2024/5/20 13:01:16/文章来源:https://blog.csdn.net/Labiod/article/details/105551611

使用beautifulSoup框架爬取114黄页数据。

代码开源在gitee地址: https://gitee.com/aismarter/ScrapySpider_bs4_openpyxl_tinker

github地址: https://github.com/Aismarter/ScrapySpider_BS4_openpyxl_tinker

分析网站

首先打开网页,分析爬取网页的元素。

点击选中需要爬取的地方-鼠标右键-检查元素。

 

 

 检测可见,要爬取的内容定位于:

<td id="tdDetails" class="text" height="500" valign="top">释放数据潜能,激...。</td>

在td块下。

之后,对分析结果进行爬取。

循环爬取实现

设置一个循环,手动的输入不同网站爬取。

但手动输入失误过多,使用tkinter,图像化输入。

 启一个图像化界面,图像化输入。

图像化测试代码如下:

# tktest.pyimport tkinter as tkclass Window:def __init__(self, handle):self.win = handleself.createwindow()self.run()def createwindow(self):self.win.geometry('400x400')# label 1self.label_text = tk.StringVar()self.label_text.set("----")self.lable = tk.Label(self.win,textvariable=self.label_text,font=('Arial', 11), width=15, height=2)self.lable.pack()# text_contrlself.entry_text = tk.StringVar()self.entry = tk.Entry(self.win, textvariable=self.entry_text, width=30)self.entry.pack()# buttonself.button = tk.Button(self.win, text="set label to text", width=15, height=2, command=self.setlabel)self.button.pack()def setlabel(self):print(self.entry_text.get())self.label_text.set(self.entry_text.get())def get_input(self):newinfo = self.entry_text.get()print("this is new information:  " + newinfo)return newinfodef run(self):try:self.win.mainloop()except Exception as e:print("*** exception:\n".format(e))def input_info():window = tk.Tk()window.title('hello tkinter')Window(window).run()if __name__ == "__main__":input_info()

 

最终爬取结果

 最终代码

import requests
import os
from tktest import *
from bs4 import BeautifulSoup
from openpyxl import Workbook
import openpyxldef get_information(url):# url = "http://www.ygsoft.com/BigData/index.html?from=baidu"page = requests.get(url)# print(page.status_code)# print(page.content)soup = BeautifulSoup(page.content, 'html.parser')# print(soup.prettify())# details = soup.find_all('td', class_="text")# print(details.get_text())# return detailsname = soup.find_all('td', class_="lian-right")name_mess = []for name1 in name:mess = str(name1.get_text())print(mess)# print(name1.get_text())name_mess.append(mess)print(name_mess)return name_messdef get_information_name(url):# url = "http://www.ygsoft.com/BigData/index.html?from=baidu"page = requests.get(url)# print(page.status_code)# print(page.content)soup = BeautifulSoup(page.content, 'html.parser')# print(soup.prettify())# details = soup.find_all('td', class_="text")# print(details.get_text())# return detailsname = soup.find_all('td', class_="top2")name_mess = []for name1 in name:mess = str(name1.get_text())print(mess)# print(name1.get_text())name_mess.append(mess)print(name_mess)return name_messdef get_information_company(url):# url = "http://www.ygsoft.com/BigData/index.html?from=baidu"page = requests.get(url)# print(page.status_code)# print(page.content)soup = BeautifulSoup(page.content, 'html.parser')# print(soup.prettify())# details = soup.find_all('td', class_="text")# print(details.get_text())# return detailsname = soup.find_all('td', class_="text")name_mess = []for name1 in name:mess = str(name1.get_text())print(mess)# print(name1.get_text())name_mess.append(mess)print(name_mess)return name_messdef store_into_excel(filename,titleList, company ,name, wb, ws1, n):r = 1if n is not 1:r = n + n -1else:r = n# 设置表头# titleList = ['远光大数据平台']c = 1for n1 in company:ws1.cell(r, c + 2, n1)for row in range(len(titleList)):ws1.cell(row=r, column=c, value=titleList[row])c += 1c = 1# 填写表内容r += 1for name1 in name:ws1.cell(r, c+2, name1)c += 1c = 1wb.save(filename=filename)def main():# 将数据写入Excelwb = Workbook()# 设置Excel文件名filename = '黄页数据.xlsx'# 新建一个表ws1 = wb.activen = 1while True:print("\n\n\n**********进行第" + str(n) + "次爬取")print("网址:")url = Window(tk.Tk()).get_input()print(type(url))print("以获取到爬取连接: " + url)print("平台:")# titleList.append(Window(tk.Tk()).get_input())titleList = get_information_name(url)company = get_information_company(url)print("正在爬取数据")name = get_information(url)store_into_excel(filename, titleList, company, name, wb, ws1, n)# try:#     name = get_information(url)#     store_into_excel(filename,  name, wb, ws1, n)# except:#     print("输入有误。。。")print("输入任意值继续,输入q键退出。。")ans = Window(tk.Tk()).get_input()n += 1if ans is not 'q':continueelse:breakif __name__ == "__main__":main()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_846527.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简易购物网站JSP

下载源码 开发工具&#xff1a; 1.myeclipse2014 2.SQLServer2012 开发思路&#xff1a; 开发思路及过程请详看附件内开发文档 项目构造: 数据库说明&#xff1a; 需创建一个数据库(shopDB)&#xff0c;三个表(users、goods、shopCart)&#xff0c;空表即可&#xff0c;后…

宝塔部署java项目建站最全爬坑博客-为啥叫最全,因为我爬的坑最多

1.首先你要有阿里云域名,然后在阿里云上解析A类你的域名,这就不多说了 2.进入宝塔面板后,你要先安装环境,最好是编译安装,因为求稳,急速安装不稳定,但是像tomcat这类app程序没有编译安装哦 环境如果都安装好了,那么我们就开始配置项目了 首先,要看我们需要运行的项目是什么,…

Java-POI大数据分析 -实体店选址POI数据分析-5天,多网站爬虫数据融合处理

实体店选址大数据分析-保定地区-POI数据-powermap-爬虫获取真实数据讲一下项目的思路 预期通过获得poi数据进行分析,以为实体店选址进行决策 数据源 58同城店铺转让数据 安居客小区详细信息数据 安居客小区平均房价数据 上爬虫代码 package wubaSpider;import java.io.FileO…

网站漏洞扫描工具AWVS相关问题——Access Denied for your user role. Contact your Administrator.

在AWVS登录用户后&#xff0c;在选择自己要使用的功能时会出现“Access Denied for your user role. Contact your Administrator.”问题&#xff0c;即“拒绝访问您的用户角色。请与管理员联系。” 此问题的出现是由于在软件处于未激活状态所致。 解决方案&#xff1a; 1、AW…

AWVS启动后显示“无法访问此网站”的解决方法

当双击桌面的“Acunetix图标”&#xff0c;自动打开浏览器跳转页面&#xff0c;结果页面显示“无法访问此网站” 按WindowsR键输入services.msc打开服务界面查看Acunetix服务是否开启&#xff0c;一般是两个服务 右键选择服务&#xff0c;选择启动&#xff0c;将两个服务全部启…

网站漏洞扫描工具AWVS_v13下载和安装

Acunetix Web Vulnerability Scanner&#xff08;简称AWVS&#xff09;是一款知名的网络漏洞扫描工具&#xff0c;它能够测试你的网站安全&#xff0c;检测网站的安全漏洞&#xff0c;如sql 注入&#xff0c;交叉站点脚本等等。 AWVS_v13软件的下载 1、AWVS漏洞扫描工具是一款…

技术分享,如何使用图数据库构建网站后台数据库?

在数据库设计开发之初&#xff0c;开发人员都会面临一个重要的选择&#xff1a;用哪个数据库呢&#xff1f;用什么数据库技术来实现呢&#xff1f;在本文中&#xff0c;笔者将以构建一套文档系统为例&#xff0c;具体阐述用Ultipa Graph如何将开发需求转化成图数据库的存储结构…

招聘网站代码模板 mysql_招聘网站爬虫模板

招聘网站爬虫模板项目的创建项目的设置中间件的理解与使用selenium的基本使用爬虫项目的创建&#xff1a;scrapy startproject spiderNamecd spiderNamescrapy genspider name www.xxx.com项目的设置&#xff1a;settings的基础设置&#xff1a;USER_AGENTMozilla/5.0 (Windows…

【Flask】nginx+uwsgi+flask部署个人网站

部署flask前提 针对nginx和uwsgi已经安装完毕&#xff0c;并且已经正确配置 第一步&#xff0c;安装项目必要的库 因为我自己是用的centos7自带的python2.7环境&#xff0c;所以直接先在服务器上pip安装flask&#xff0c;如果项目需要其他的库&#xff0c;也需要提前安装 p…

【Django】总结用Django框架搭建表白网站

前言 2020.2.14是情人节&#xff0c;2020.2.13花了整整一晚搭表白网站&#xff0c;由于第一次用Django框架&#xff0c;遇到很多坑&#xff0c;在此记录 搭建Django框架的网站需要哪些东西 一台云服务器&#xff08;如阿里云&#xff09; 云服务器上安装好配置环境&#xff…

【建站】wordpress搭建网站

在centos7上安装apache https://blog.csdn.net/shj_php/article/details/79495861 如果你的服务器上已经安装了nginx&#xff0c;可能在开启apache服务service的时候会失败&#xff0c;因为Apache和nginx都占用了80端口&#xff0c;Job for httpd.service failed because the…

大型高负载的网站的体系结构和web2.0时代的网站高负载

大型高负载的网站的体系结构和web2.0时代的网站高负载 (2010-03-28 16:26:29) 转载▼标签&#xff1a; it 分类&#xff1a; 架构与开发 从事发布系统(web publish system)的研究和开发快两年了&#xff0c;从小型应用到中型应用&#xff0c;基本上没有参与大型应用(千万pv/…

解决看Html5网站或论坛时字体模糊问题

两个步骤&#xff1a; 第一步&#xff1a;修改window外观设置。 XP用户请先执行如下操作&#xff1a;桌面单击右键-属性-外观-效果-勾选“使用下列方式使屏幕字体的边缘平滑”并选择“清晰”&#xff0c;然后点击确定。 WIN7用户请请执行如下操作&#xff1a;打开控制面板-所有…

nginx网站架构优化

1&#xff09;网站架构优化体系说明&#xff08;面试&#xff09; 面试时怎么说&#xff1a; 先说体系&#xff0c;再说具体 2&#xff09;网站架构的优化具体操作部分&#xff08;nginx&#xff09; 网站安全的维度 网站性能的维度 网站管理有关的维度 用户体验的维度 3&#…

从单机至亿级流量大型网站系统架构

阶段一、单机构建网站 网站的初期&#xff0c;我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器&#xff0c;如tomcat、jetty、jboos&#xff0c;然后直接使用JSP/servlet技术&#xff0c;或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspr…

HttpClient调用JSONObject.parseObject(EntityUtils.toString(response.getEntity()))报JSONException异常解决方案

[TOC](HttpClient调用JSONObject.parseObject(EntityUtils.toString(response.getEntity()))报com.alibaba.fastjson.JSONException: syntax error, pos 1, line 1, column异常解决方案) 问题背景 在使用httpClient调用url的时候&#xff0c;返回值我进行了json解析&#xff…

IE单击以激活控件网站代码解决法

IE"单击以激活控件"网站代码解决法 由于微软输了专利官司&#xff0c;所以从2006年开始&#xff0c;IE6补丁和IE7里面的flash&#xff0c;quick time,Java及其他控件都需要点击才能激活。经常看到flash外面包含了个虚框&#xff0c;鼠标移上去后提示&#xff1a;“c…

改善VS2005发布网站问题

使用了AJAX控件的网站在发布在服务器上会出错,要解决改问题只需在Bin目录下添加&#xff1a;System.Web.Extensions.dll&#xff0c;该文件在AJax控件的安装目录下可以找到 1.允许更新此预编辑站点 选中这一项后&#xff0c;编译出来的包括aspx文件和dll&#xff0c;与2003下…

修改MOSS网站的URL访问地址

前几天公司的一个客户要试用一下公司在SharePoint平台上面做的一个应用系统&#xff0c;公司有一个安装好的虚拟机&#xff0c;但是域名是一个虚拟的&#xff0c;客户说要把URL改成他们的名称。上网搜索了一个&#xff0c;结合自己做了一个小实验&#xff0c;通过两步可以很好的…

Web2.0设计师工具箱,国外的一些网站制作资源,css,javascript,ajax,设计素材等

http://hi.baidu.com/sw%5Fws/blog/item/32b4237e63bbf13b0cd7da83.html Web2.0工具箱 The Web Designers Tool Kit原文地址&#xff1a; http://www.dezinerfolio.com/2007 ... designers-tool-kit/分类一、DHTML AJAX Javascript 【Ajax脚本库】1. RO Scripts - Growing Coll…