python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

直接代码,如有不懂请加群讨论

# *-* coding:utf-8 *-* #

import json

import requests

import pytesseract

import time

import datetime

from PIL import Image

from bs4 import BeautifulSoup

import urllib3

import random

import os

from lxml import etree

headers = {

"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",

}

session = requests.session()

url = 'https://www.saikr.com/'

def get_index():

'''

直接访问活动页面

:return:

'''

response = session.get(url+'activity',headers=headers)

response.encoding = 'utf8'

return response.content

def get_page(res = ''):

'''

获取数据进行存储

:return:

'''

if res:

html = etree.HTML(res)

else:

html = etree.HTML(get_index())

#获取尾页数据

lastpage = html.xpath('//li[@class="last"]/a/@data-ci-pagination-page')[0]

#从第一页开始爬取

for p in range(1, int(lastpage)):

net_url = url + 'activity/' + str(p)

response = session.get(net_url, headers=headers)

response.encoding = 'utf8'

get_page(response.content)

#得到详情页数据

items = html.xpath('//div[@id="activeLoadContentBox"]/ul/li')

title = ''

for item in items:

at_url = item.xpath('./div/h3/a/@href')[0]

at_title = item.xpath('./div/h3/a/text()')[0]

title = at_title.strip() + '\n'

get_content(at_url,title)

def get_content(u,t):

res = session.get(u, headers=headers)

html = etree.HTML(res.content)

items = html.xpath('//div[@class="new-active-box"]/ul/li')

result = t

for item in items:

title = item.xpath('./span/text()')[0]

cont = item.xpath('./div/p[1]/text()')

#结束时间

cont2 = item.xpath('./div/p[2]/text()')

if cont2:

endtime = cont2[0]

else:

endtime = ''

if cont:

conts = cont

else:

conts = item.xpath('./p/text()')

if conts[0].strip() == '':

conts = item.xpath('./p/span/text()')

result += title.strip() +conts[0].strip() + endtime + '\n'

print(result)

file = os.getcwd() + '/active.txt'

output = open(file, 'a')

output.write(result)

output.close()

if __name__ == '__main__':

get_page()

运行:

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMDY3OTI1LzIwMTgxMi8xMDY3OTI1LTIwMTgxMjIwMTQzNzAwODg5LTQ3NTkyMzg1Mi5wbmc=.jpg

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMDY3OTI1LzIwMTgxMi8xMDY3OTI1LTIwMTgxMjIwMTQzNzE3MDQyLTc4NzI5Mjc3Mi5wbmc=.jpg

java将数据写入到txt文件中(txt有固定的格式)

java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...

SQL C# nvarchar类型转换为int类型 多表查询的问题,查询结果到新表,TXT数据读取到控件和数据库,生成在控件中的数据如何存到TXT文件中

在数据库时候我设计了学生的分数为nvarchar(50),是为了在从TXT文件中读取数据插入到数据库表时候方便,但是在后期由于涉及到统计问题,比如求平均值等,需要int类型才可以,方法是:Conver ...

深度学习tensorflow实战笔记(1)全连接神经网络(FCN)训练自己的数据(从txt文件中读取)

1.准备数据 把数据放进txt文件中(数据量大的话,就写一段程序自己把数据自动的写入txt文件中,任何语言都能实现),数据之间用逗号隔开,最后一列标注数据的标签(用于分类),比如0,1.每一行表示一个 ...

c++鼠标点点,获取坐标值,放入到txt文件中

// oj3.cpp : Defines the entry point for the console application.// #include "stdafx.h"#in ...

java存储数据到本地txt文件中

java存储数据,方便打印日志等 1.会覆盖以前的数据 try { File writeName = new File("D:\\data.txt"); // 相对路径,如果没有则 ...

C# 将DataTable数据写入到txt文件中

见代码: /// /// 将DataTable里面的内容写入txt文件 /// ///

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值