您的位置:首页 > 编程语言 > Python开发

python爬虫知识点小结

2018-03-21 15:25 483 查看
设置默认编码
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案
这 个错误是connection reset by peer.也就是传说的远端主机重置了此连接。原因可能是socket超时时间过长;也可能是request = urllib.request.urlopen(url)之后,没有进行request.close()操作;也可能是没有sleep几秒,导致网站认定 这种行为是攻击。解决方法import socket  import time  timeout = 20    socket.setdefaulttimeout(timeout)#这里对整个socket层设置超时时间。后续文件中如果再使用到socket,不必再设置  sleep_download_time = 10 time.sleep(sleep_download_time) #这里时间自己设定 s = requests.session()s.keep_alive = Falseresponse = s.post(url_biddingInfo,headers=header,data=post_data)
resp_list = json.loads(response.content)#解析ajax返回的json
s.close()
#网上找的def Download_auto(downloadlist,fun,sleep_time=15):      while True:                  try: # 外包一层try               value = fun(downloadlist,sleep_time) # 这里的fun是你的下载函数,我当函数指针传进来。            # 只有正常执行方能退出。              if value == Util.SUCCESS:                  break         except : # 如果发生了10054或者IOError或者XXXError              sleep_time += 5 #多睡5秒,重新执行以上的download.header = {}post_data = {}一定不能少
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('xxx', cell_overwrite_ok=True)
WorksCopyRighttitle = [""]
for i in range(0,len(WorksCopyRighttitle)):
sheet.write(0,i,WorksCopyRighttitle[i].decode("utf-8"))#按行列写入excel
global #设置全局变量
try
except #尽量抛出异常后continue
调整时间格式
timedemo.insert(4, "年")
timedemo.insert(7, "月")
timedemo.insert(10, "日")
timedemo.insert(13, ":")
timedemo.insert(16, ":")
createtime = "".join(timedemo)  # 标准时间
时间戳转时间
timedemo =‘231313123’
timeStamp = float(timedemo/1000)
timeArray = time.localtime(timeStamp)
createtime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) #开标时间
BeautifulSoup 能转化数据能将标签移除掉,从而获得网页上的数据以及内容
soup = BeautifulSoup(‘’,'lxml')
info_details = soup.find_all('td')#提取所有td中的内容
re.findall(ur'中文:(.*?)<br\/>',soup.decode('utf-8')) 写带有中文的正则时一定要转码
部分来自https://www.cnblogs.com/mmix2009/archive/2013/07/30/3224954.html仅供参考(自己的学习笔记)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: