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

# *-* 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()

运行:

python中xpath如何获取内容_python requests + xpath 获取分页详情页数据存入到txt文件中...相关推荐

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

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  2. python读数据库的通信协议是_Python以太坊区块链交互将数据存入数据库

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  3. python数据录入系统数据库处理导出_Python以太坊区块链交互将数据存入数据库

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

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

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

  5. 怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时惠存txt文件中

    怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时存入txt文件中 我在做一个基于VC6的MSComm控件的电机上位机控制,数据帧格式采用9600bps,8位数据位,奇校验,1位 ...

  6. 5.编写程序,建立一个含有5名学生成绩的文件:stu1.txt, 解释说明:为了避免测试代码时,反复从屏幕输入数据样例,我这里将数据存在f2.txt文件中,使用freopen()函数访问并读出数据

    建立一个含有5名学生成绩的文件stu1.txt.每个学生的数据包括:学号.姓名.性别.为避免测试代码时反复从屏幕输入数据样例,我这里将数据存在f2.txt文件中,使用freopen函数访问并读出数据. ...

  7. php获取CSV后缀文件中的内容,并把某一列的数据重写到txt文件中

    说明:在下目前是新手,写的不好的地方请联系站长进行指教. 需要注意的地方: 其他的都是系统在自己获取. 下面是read_file.php中的类: <?phpclass read_file {pu ...

  8. python将想要打印的数据输出到txt文件中,打印省略号里面的内容

    本来是想完整输出npy文件,pycharm中只输出部分npy文件,结果输出的文件也是部分数据,代码在后面(代码参考博客忘了,抱歉啊) 后期又搜了如何完整输出的方法,写在后面了. import nump ...

  9. c++ 写入文件_利用Python把数据存储在csv文件中

    鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...

最新文章

  1. win7下解决Android SDK Manger慢
  2. 揭秘|多伦多大学反人脸识别,身份欺骗成功率达99.5%
  3. Java环境变量配置详细步骤
  4. 笔记-项目立项管理-项目的可行性研究
  5. 面试(后台开发,转载)
  6. Java寻找最大公约数
  7. WebApi接口 - 响应输出xml和json 转
  8. [转]FlashSocket通信安全策略一点心得
  9. STM32 - 定时器的设定 - 基础- 07 - 6-step PWM generation - 6步长PWM的产生 - COM Event的解释
  10. 进入保护模式(八)简单OS内存使用分布
  11. rails 开发随手记 9
  12. TcpTrace实现的基本原理
  13. php 遍历文件夹下的所有文件名以及文件大小
  14. linux sort排序字符串位数,Linux sort命令详解:字符串排序
  15. vue 安装 axios
  16. Windows程序设计:一个简单的API函数调用实例
  17. 油管youtube第三方客户端 去广告-TubeMax
  18. 日化行业DMS全渠道商城系统
  19. 个性化定制软件安装包流程指导(按照步骤即可定制化安装流程)
  20. Android听筒模式和免提模式的切换

热门文章

  1. Introspector内存溢出的原理解析
  2. 鼠标浮动到表格的某行 背景颜色变化[mouseover mouseout 以及mouseenter mouseleave]
  3. 同一台Windows机器中启动多个Memcached服务
  4. 常用的密码破解方法大汇总 zz
  5. 关于FP Spread for Web Forms 2.0.0.0
  6. redis-使用问题
  7. shell命令locate
  8. spring+mybatis 多数据源切换
  9. 笔记.NET基础知识05
  10. 判断操作系统类型的多种方法