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

yipeiwu_com6年前Python爬虫

本文主要分享关于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爬虫之抓取百度贴吧并存储到本地txt文件改进版

零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版

百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键数据,然后将其存储到本地txt文件。 项目内容: 用Python写的百度贴吧的网络爬虫。 使用方法: 新建一...

一个月入门Python爬虫学习,轻松爬取大规模数据

一个月入门Python爬虫学习,轻松爬取大规模数据

Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工...

使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例

熟悉Java的jsoup包的话,对于Python的BeautifulSoup库应该很容易上手。 复制代码 代码如下:#coding: utf-8import sysimport urll...

Python爬虫之正则表达式的使用教程详解

Python爬虫之正则表达式的使用教程详解

正则表达式的使用 re.match(pattern,string,flags=0) re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回...

Python基于多线程实现抓取数据存入数据库的方法

本文实例讲述了Python基于多线程实现抓取数据存入数据库的方法。分享给大家供大家参考,具体如下: 1. 数据库类 """ 使用须知: 代码中数据表名 aces ,需要更改该数据表名...