python登录并爬取淘宝信息代码示例


Posted in Python onDecember 09, 2017

本文主要分享关于python登录并爬取淘宝信息的相关代码,还是挺不错的,大家可以了解下。

#!/usr/bin/env python 
# -*- coding:utf-8 -*- 
from selenium import webdriver 
import time 
import datetime 
import traceback 
import logging 
import os 
from selenium.webdriver.common.action_chains import ActionChains 
import codecs 
#登录 
def login(driver,site): 
 driver.get(site) 
 time.sleep(5) 
 try: 
  #点击请登录 
  driver.find_element_by_class_name("h").click() 
  time.sleep(5) 
  #输入账号和密码 
  driver.find_element_by_id("TPL_username_1").send_keys(u"yourusername") 
  time.sleep(5) 
  #print driver.find_element_by_id("TPL_username_1") 
  driver.find_element_by_id("TPL_password_1").send_keys(u"yourpsd") 
  time.sleep(5) 
 
  #点击登录 
  driver.find_element_by_id("J_SubmitStatic").click() 
  time.sleep(30) 
 except: 
  print u"failure" 
def crawlmarket(driver,filename,site): 
 #driver = webdriver.Firefox() 
 driver.get(site) 
 driver.maximize_window() 
 time.sleep(10) 
 driver.refresh() 
 time.sleep(10) 
 test = driver.find_elements_by_xpath("//a[@class='J_ItemLink']") 
 #是否获取到消息,若无则登录 
 if len(test)==0: 
  login(driver,site) 
 time.sleep(30) 
 resultstrall="" 
 resultstr="" 
 strinfo ="" 
 for i in range(0,len(test),1): 
  if test[i].text != "" : 
   resultstr = test[i].text.strip()+'\n' 
   print resultstr 
   resultstrall += resultstr 
 #是否成功抓取 
 if resultstrall !="": 
  f = codecs.open(filename,'w','utf-8') 
  f.write(resultstrall) 
  f.close() 
 #若没有成功抓取将网站写入error 
 else: 
  strinfo = filename+","+site 
  print strinfo 
  ferror = codecs.open("error.txt",'a','utf-8') 
  ferror.write(strinfo) 
  ferror.close() 
 driver.quit() 

def crawltaobaosousuo(driver,filename,site): 
 #driver = webdriver.Firefox() 
 driver.get(site) 
 driver.maximize_window() 
 time.sleep(10) 
 driver.get(site) 
 time.sleep(30) 
 driver.refresh() 
 test = driver.find_elements_by_xpath("//a[@class='J_ClickStat']") 
 resultstrall="" 
 resultstr="" 
 strinfo ="" 
 for i in range(0,len(test),1): 
  if test[i].text != "" : 
   resultstr = test[i].text.strip()+'\n' 
   print resultstr 
   resultstrall += resultstr 
 if resultstrall !="": 
  f = codecs.open(filename,'w','utf-8') 
  f.write(resultstrall) 
  f.close() 
 else: 
  strinfo = filename+","+site 
  print strinfo 
  ferror = codecs.open("error.txt",'a','utf-8') 
  ferror.write(strinfo) 
  ferror.close() 
 driver.quit() 
def jiexi(driver): 
 f = open("1.txt","r") 
 for line in f: 
  time.sleep(60) 
  info = line.split(",") 
  href = info[1] 
  filename = info[0].decode("utf-8") 
  print filename 
  if "markets" in href: 
   crawlmarket(driver,filename,href) 
  else: 
   crawltaobaosousuo(driver,filename,href) 
if __name__ =='__main__': 
 driver = webdriver.Firefox() 
 jiexi(driver)

小结

有改进策略一起探讨,可以抓取淘宝部分网页内容,根据自己的需求改改吧,会被风控。个人觉得不登录的效果更好。

以上就是本文关于python 登录并爬取淘宝信息代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
浅析python 内置字符串处理函数的使用方法
Jun 11 Python
Python Socket编程入门教程
Jul 11 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python实现两款计算器功能示例
Dec 19 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python获取array中指定元素的示例
Nov 26 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
分析Python list操作为什么会错误
Nov 17 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 #Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 #Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 #Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 #Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 #Python
python爬取亚马逊书籍信息代码分享
Dec 09 #Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 #Python
You might like
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
php截取视频指定帧为图片
2016/05/16 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
python遍历数组的方法小结
2015/04/30 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
python3个性签名设计实现代码
2018/06/19 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
小学毕业家长寄语
2014/01/19 职场文书
公司承诺书格式
2014/05/21 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
JavaScript ES6的函数拓展
2022/01/18 Javascript
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python