返回顶部
首页 > 资讯 > 后端开发 > Python >python实战
  • 124
分享到

python实战

实战python 2023-01-31 05:01:34 124人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这个实战内容包含,selenium、pyquery、re、pymonGopymongo安装去这里:https://blog.51cto.com/13155409/2125020实战抓取淘宝美食信息并且存入mongoDB数据库中 实现源码如下

这个实战内容包含,selenium、pyquery、re、pymonGo
pymongo安装去这里:https://blog.51cto.com/13155409/2125020
实战抓取淘宝美食信息并且存入mongoDB数据库

实现源码如下:

import pymongo
from selenium import WEBdriver
import re
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq

browser = webdriver.Chrome()         #导入浏览器驱动对象
wait = WebDriverWait(browser, 10)    #设置浏览器等待时间

client = pymongo.MongoClient('192.168.10.15')   #创建一个客户端对象
db = client['taobao']   #设置数据库名,会自动建立

def search():
        '''
        函数主要功能是:通过webdriver.Chrome打开淘宝网页,并对“美食”这个关键词进行搜索。
        :return: 返回网页的响应码
        '''
        browser.get('Https://www.taobao.com')
        input = wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR,'#q'))
        )
        submit =wait.until(
                EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_TSearchFORM > div.search-button > button'))
        )
        input.send_keys('美食')   #输入搜索的关键词
        submit.click()
        return browser.page_source

def trun_page(page):
        '''
        该函数的功能是:实现翻页
        :param page: 通过search页面搜索到的内容页数,返回到主函数,然后通过主函数传递到此处
        :return: 已经获得了第一页的内容了,第二页开始就从这里开始反复调用
        '''
        index = wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.form > input'))
        )
        submit = wait.until(
                EC.element_to_be_clickable((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit'))
        )
        index.clear()   #清除输入框的内容
        index.send_keys(page)   #输入page页码
        submit.click()   #点击跳转的按钮
        get_products(browser.page_source)

def get_products(html):
        wait.until(
                EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-itemlist .items .item'))
                             )
        html = pq(html)    #使用pyquery解析html代码
        doc = html('#mainsrp-itemlist .items .item').items()  #通过item产生一个generator类型,使用for循环遍历
        for item in doc:
                product={
                        "picture": item.find('.pic .img').attr('src'),
                        'name': item.find('.row.title').text().replace('\n',''),
                        'price':item.find('.price').text().replace('\n',''),
                        'deal':item.find('.deal-cnt').text()[:-3],
                        'location':item.find('.location').text()
                }
                print(product)
                #save_to_mongodb(product)
        return(html)

def save_to_mongodb(result):
        '''
        这个函数主要用于把每页的信息写入到MongoDB数据库中
        '''
        try:
                if db['product'].insert(result):   #创建一个product的集合,类似于Mysql中的表,然后插入数据
                                print('存储到MongoDB成功')
        except Exception:
                print('存储到MongoDB出错')

def main():         #定义主函数
        # 调用搜索函数 (对关键词搜索,本文中是以“美食”在淘宝搜索)
        html = search()

        # 调用该函用以获取单页的所有产品的信息
        html = get_products(html)

        #通过上面get_products()返回经过pyquery解析后的html代码,用于获取总页数
        total = html('.total').text()
        total = int(re.search('(\d+)',total).group(1))
        print(total)  #打印出总页数

        #对页数进行循环,这里是从 2 开始,因为前面已经获取一次了
        for page in range(2,total):
                #下面函数主要用于网页翻页
                trun_page(page)

if __name__ == "__main__":
        main()

--结束END--

本文标题: python实战

本文链接: https://lsjlt.com/news/189218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python实战
    这个实战内容包含,selenium、pyquery、re、pymongopymongo安装去这里:https://blog.51cto.com/13155409/2125020实战抓取淘宝美食信息并且存入MongoDB数据库中 实现源码如下...
    99+
    2023-01-31
    实战 python
  • python实战--Python Web
       最近在研究WebShell,于是打算写一个Python版的WebShell,使用的是cgi, Apache配置文件http.conf需做如下: 我的cgi脚本放到F:\py_cgi目录下,其中cgi-script指定脚本后缀名,例如...
    99+
    2023-01-31
    实战 python Web
  • 《Python高效开发实战》实战演练——
    在完成Django项目和应用的建立后,即可以开始编写网站应用代码,这里通过为注册页面显示一个欢迎标题,来演示Django的路由映射功能。1)首先在djangosite/app/views.py中建立一个路由响应函数:from django....
    99+
    2023-01-31
    实战 高效 Python
  • python-爬虫实战
    想看看最近的电影院播放的今日影视,就以这个网址https://movie.douban.com/people/1166776/为例,先使用urllib.request模块抓取整个网页,再使用re模块获取影视信息 编写simpleCrawle...
    99+
    2023-01-30
    爬虫 实战 python
  • Django Python实战(一)
    这段日子决定学习python,开发一个运维系统,所有记录自己写下的点点滴滴 直接开始,不说废话了 好的开发首先需要一个好的开发平台,首先需要安装eclipse+python插件   1 python基础 主要说到python的基本几个方面:...
    99+
    2023-01-31
    实战 Django Python
  • Python实战(5)Python和Sh
    Shell使用系统tar Python使用tarfile模块,Python不开多线程的情况两者做文件打包压缩对比。 Shell代码   #!/bin/sh - # Bak_rsync_Shell.sh version  shell_dir=...
    99+
    2023-01-31
    实战 Python Sh
  • python groupby用法实战
    背景 已知某航空公司拥有的飞机数量如下图示,现要求在EXCEL表中,计算出各个机型每种座位布局的飞机数量在该种机型飞机总量中所占的比重。 代码实现 #导入原始数据表 import pandas as pd dt=pd.read...
    99+
    2023-01-31
    实战 python groupby
  • [Python实战]Python制作天气
    来源:Python高效编程作者:flywind以前,公众号分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气查询软件。开发环境Python3PyQt5requests准备工作首先要获取不同...
    99+
    2023-01-31
    实战 天气 Python
  • Python Pygame实战之红心大战游戏的实现
    目录导语一、 红心大战用户手册二、红心大战游戏规则三、准备中四、代码演示五、效果展示导语 还记得那些年,我们玩过的Windows小游戏吗? 说起Windows自带的游戏,相信许多8...
    99+
    2024-04-02
  • Python入门到实战 Python的修
    Python的修炼之道(入门语法、游戏开发、网络编程)课程讲师:小强老师课程分类:Python适合人群:初级课时数量:43课时用到技术:Python涉及项目:数据库应用程序开发 游戏开发咨询QQ:1337192913课程设计思路及目标:本课...
    99+
    2023-01-31
    实战 入门 Python
  • Python基础实战总结
    目录一、思路二、解决方法1)TXT文件存储2)CSV文件存储三、总结前言: 前几天有个叫【-berry】的粉丝在Python交流群里问了一道关于大学生Python题目的问题,如下图...
    99+
    2024-04-02
  • python网络爬虫实战
    目录一、概述二、原理三、爬虫分类1、传统爬虫2、聚焦爬虫3、通用网络爬虫(全网爬虫)四、网页抓取策略1、宽度优先搜索:2、深度优先搜索:3、最佳优先搜索:4、反向链接数策略:5、Pa...
    99+
    2024-04-02
  • python 实战 登录注册
    #!/usr/bin/env python #coding:utf-8 fo=open("user.txt") ''' num=1 while True:         line=fo.readline() #       print r...
    99+
    2023-01-31
    实战 python
  • 「docker实战篇」python的do
    原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:「docker实战篇」python的docker爬虫技术-appium+python实战(18) 上次通过appium进行了,录制脚本的功能,而且还可以进行转换成...
    99+
    2023-01-31
    实战篇 docker python
  • python十个实战项目
    python项目练习一:即时标记 python项目练习二:画幅好画 python项目练习三:万能的XML python项目练习四:新闻聚合 python项目练习五:虚拟茶话会 python项目练习六:使用CGI进行远程编辑 python项...
    99+
    2023-01-31
    实战 项目 python
  • python -- 飞机大战(实验)
    小Q:今天无意间发现了大神写的python飞机项目,和一本好资料,记录一下。前一阵子看了一篇文章:青少年如何使用Python开始游戏开发 。看完照葫芦画瓢写了一个,觉得挺好玩儿,相当于简单学了下Pygame库。这篇文章是个12岁小孩儿写的,...
    99+
    2023-01-31
    大战 飞机 python
  • 【实战演练】Python+Django网
    前面介绍了通过tomcat+mysql以及apache+mysql,然后在网上搜索一些开源的网站程序源代码,然后学习如何搭建web服务。上述关注的内容,更多像运维工程师的工作。开发人员将代码提交给测试人员,测试人员将最后要发布的程序与部署指...
    99+
    2023-01-31
    实战 Python Django
  • Python实战小游戏飞机大战详解
    目录导语​正文一、环境安装二、我方飞机三、敌方飞机四、控制键盘移动五、检测子弹碰撞六、效果图总结导语 “看见别人都那么努力,那么勤奋,那么意气风发地走在成功的道路上,你问...
    99+
    2024-04-02
  • Python实战|利用Dowhy框架实现因果推断实战(二)
    文章来源:gzh数据万花筒 文章链接:https://mp.weixin.qq.com/s/7uBQ3_sR2j_zxH8mj7nKeQ 点击上方蓝字关注我们 因果推断系列文章分为上下两篇,目录结构如下所示,上篇文章可点击阅读原文查看...
    99+
    2018-01-01
    Python实战|利用Dowhy框架实现因果推断实战(二)
  • 【Python实战】Python采集情感音频
    成年人的世界真不容易啊 总是悲伤大于欢喜 爱情因为懵懂而快乐 却走进了复杂和困惑的婚姻 前言 我最近喜欢去听情感类的节目,比如说,婚姻类,我可能老了吧。我就想着怎么把音乐下载下来了,保存到手机上,方便我们业余时间去听。 环境使用 ...
    99+
    2023-09-05
    python 爬虫 音视频
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作