[Python] 纯文本查看 复制代码# 利用 Selenium 抓取淘宝商品并用 PyQuery 解析得到商品的图片、名称、价格、购买人数、

# 店铺名称、店铺所在地信息,并将其保存到MongoDB。 以及数据库,csv格式等

from selenium import webdriver

from selenium.common.exceptions import TimeoutException

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

from urllib.parse import quote

browser = webdriver.Chrome()

wait = WebDriverWait(browser,10)

KEYWORD = input('请输入要检索的物品:')

def index_page(page):

"""

抓取索引页

:param page:页码

:return:

"""

print('正在爬取第',page,'页')

try:

url = 'https://s.taobao.com/search?q=' + quote(KEYWORD)

browser.get(url)

if page > 1:

input = wait.until(

EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager div.form > input'))

)

submit = wait.until(

EC.element_to_be_clickable((By.CSS_SELECTOR,'#mainsrp-pager div.form > span.btn.J_Submit'))

)

input.clear()

input.send_keys(page)

submit.click()

wait.until(

EC.text_to_be_present_in_element((By.CSS_SELECTOR, '#mainsrp-pager li.item.active > span'), str(page))

)

wait.until(

EC.presence_of_element_located((By.CSS_SELECTOR, '.m-itemlist .items .item'))

)

get_products()

except TimeoutException:

index_page(page)

from pyquery import PyQuery as pq

def get_products():

"""

提交商品数据

:return:

"""

html = browser.page_source

doc = pq(html)

items = doc('#mainsrp-itemlist .items .item').items()

for item in items:

product = {

'image':item.find('.pic .img').attr('data-src'),

'price':item.find('.price ').text(),

'deal':item.find('.deal-cnt').text(),

'title':item.find('.title').text(),

'shop':item.find('.shop').text(),

'location':item.find('.location').text(),

}

print(product)

write_txt(product)

save_mysql(product)

save_to_mongo(product)

save_image(product)

import os

from hashlib import md5

import requests

def save_image(item):

if not os.path.exists(item.get('shop')):

os.mkdir(item.get('shop'))

try:

local_image_url = item.get('image')

response = requests.get('http:' + local_image_url)

file_path = '{0}/{1}.{2}'.format(item.get('shop'),md5(response.content).hexdigest(),'jpg')

if not os.path.exists(file_path):

with open(file_path,'wb') as f:

f.write(response.content)

print('Success to Save image')

else:

print('Already Downloaded', file_path)

except requests.ConnectionError:

print('Failed to Save Image')

import pymongo

MONGO_URL = '127.0.0.1'

MONGO_DB = 'taobao'

MONGO_COLLECTION = 'products'

client = pymongo.MongoClient(MONGO_URL)

db = client[MONGO_DB]

def save_to_mongo(result):

"""

保存到Mongodb 名字淘宝

:return:结果

"""

try:

if db[MONGO_COLLECTION].insert(result):

print('存储到Mongodb成功')

except Exception:

print('存储到Mongodb失败')

def write_txt(content):

try:

with open('tao.csv','a',encoding='utf-8') as f:

f.write(str(content)+ '\n') #要存到txt,csv 字典格式不能直接写入 转换成json 或者 字符串

print('写入成功')

except Exception:

print('写入失败')

import pymysql

sql_db = pymysql.connect(host = 'localhost',user = 'root',password = 'root123',port = 3306,db = 'tao',charset='utf8')

cursor = sql_db.cursor()

def save_mysql(content):

table = 'ipad'

keys = ','.join(content.keys())

values = ','.join(['%s'] * len(content))

sql = 'insert into {table}({keys}) values ({values})'.format(table=table,keys=keys,values=values)

try:

if cursor.execute(sql,tuple(content.values())):

print('Successful')

sql_db.commit()

except:

print('Failed')

sql_db.rollback()

#sql_db.close()

def main():

"""

遍历每一页

:return:

"""

MAX_PAGE = input("MAX_PAGE:")

MAX_PAGE = int(MAX_PAGE)

for i in range(1,MAX_PAGE+1):

index_page(i)

browser.close()

if __name__ == '__main__':

main()

python爬取网易云音乐歌单_【python】爬取并批量下载网易云歌单,嗨翻暑假!相关推荐

  1. python爬取并下载代码_python 爬取并批量下载网易云歌单源代码

    #!/usr/bin/env python#!--*--coding:utf-8 --*-- #![url=home.php?mod=space&uid=238618]@Time[/url]  ...

  2. Python3批量下载网易云音乐热歌榜

    Python3批量下载网易云音乐热歌榜 可以批量下载网易云音乐热歌榜的歌曲,可以自己设定数量,速度非常快. https://music.163.com/#/discover/toplist?id=37 ...

  3. python免费下载歌曲_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, s ...

  4. python下载歌曲教程视频_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, sys, click, re, base6 ...

  5. 怎么用python下载网易云_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, s ...

  6. python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码 # -*- coding:utf-8 -*-import requests, hashlib, s ...

  7. Python批量下载网易云音乐飙升榜所有音乐文件

    Python小屋刷题神器最近升级的新功能介绍 推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第 ...

  8. python 爬虫爬取下载网易云音乐歌单的歌曲(需要使用JS的加密方法得出params去获取下载地址)

    要点:1.js加密就是麻烦,只能百度寻找了!设计的加密模块binascii.Crypto.base64 2.requests.Session的用法,可以指定headers.cookies 3.可以用s ...

  9. 小项目实现:下载网易云某个歌单的全部音乐

    第一步:用歌曲地址先实现一首歌的下载 利用: song_url (例如:https://m701.music.126.net/20190719164713/77733e070e7f9c68ac6ea2 ...

最新文章

  1. iPhone开发环境搭建For PC
  2. 解决:RuntimeError: CUDA out of memory. Tried to allocate 2.00 MiB
  3. js 多个定时器_JS中的同步/异步编程
  4. 统计学习方法-李航(2)
  5. pycharm中设置显示行数
  6. Laravel核心解读--用户认证系统的实现细节
  7. mormot mysql,mORMot 数据库操作
  8. Could not autowire. No beans of ‘xxxMapper‘ type found.
  9. JavaScript设计模式-工厂方法模式
  10. 曲线积分和曲面积分及其几何应用、物理应用
  11. 套用这套模板,玩转周报、月报、年报更省事
  12. 《出版专业基础(初级)》2020版学习笔记2~8章
  13. hudi系列-旧文件清理(clean)
  14. 高德h5定位误差_高德地图定位JS API不准确问题
  15. 国稻种芯绿色沃土计划 农业大健康-万祥军:对话化肥惹的祸?
  16. oracle按照成绩排序,oracle 经典分数排名
  17. python之pexpect模块
  18. [uoj30][CF Round #278]Tourists——树链剖分+圆方树
  19. RFC 2132 的 DHCP Options
  20. 掌纹与掌静脉融合matlab代码,手形、掌纹和掌静脉多特征融合识别

热门文章

  1. Java实现生成csv文件并导入数据
  2. 竞争网络——Hamming网络
  3. 信锐无线控制器短信认证企信通配置
  4. 现代c++中实现精确延时方法总结
  5. Mac 终端命令汇总
  6. 黑盒测试技术(概念等价类划分法详细)——软件质量保证与测试
  7. 怎么调用计算机任务管理器,如何使用任务管理器
  8. 好文章要收藏_漫谈IT毕业生职业规划
  9. Java调整图片大小合并PNG图片生成ICON(保持背景透明)
  10. hbuildx编辑器在文件编译上的bug