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中的25个隐藏特性
Mar 30 Python
Python学习pygal绘制线图代码分享
Dec 09 Python
django 修改server端口号的方法
May 14 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
python异常处理try except过程解析
Feb 03 Python
如何使用repr调试python程序
Feb 28 Python
解决Django no such table: django_session的问题
Apr 07 Python
python 生成器需注意的小问题
Sep 29 Python
Python读写锁实现实现代码解析
Nov 28 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
php自定义session示例分享
2014/04/22 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
php删除指定目录的方法
2015/04/03 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
python数据结构之链表详解
2017/09/12 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python 画图 图例自由定义方式
2020/04/17 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
allbeauty美国:英国在线美容店
2019/03/11 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
公证委托书格式
2014/09/13 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python