Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

ServerChan+南邮教务处

2019/09/15 爬虫 Python
Word count: 392 | Reading time: 2min

SeverChan_Nyedu

Crawl the infomation about competitons, when new infos comes, remind people on Wechat by ServerChan:

😍该程序通过爬取南邮教务处,将当前时间与最新时间进行匹配,如果是当日则通过ServerChan发送到本人的微信,提醒有新的竞赛.

完成笔记:

1.关于lxmletree.xpath()对于tbody的处理

该网页通过table对页面进行分布设置,其中table标签会自动生成tbody标签,如图…此时用xpath进行匹配的时候就不需要将tbody加上,否则匹配不到

布局<Table>

Nonetbody

表格<table>

Table_tbody

可以看到的是在Chrome调试助手里面,<table>下面都是会自动生成<tbody>标签的(一般tbody是浏览器自动产生的,一般情况要去掉),而我们再通过网页源码看看…==>可以发现的是:

<table>布局是没有<tbody>的,只有表格才有,所以这也是为什么用xpath()表格里必须加上tbody才能匹配,而table布局中不能加tbody的原因

1
2
3
4
5
6
7
8
9
10
11
12
#布局获得内容
for content in contentList:
title = content.xpath('td/table/tr/td[1]/a/text()')[0]
href = content.xpath('td/table/tr/td[1]/a/@href')[0]
submittime = content.xpath('td/table/tr/td[2]/div/text()')[0]

#表格
if content.tag == 'table':
tabletitle = content.xpath('tbody/tr[1]/td') # 表格头
tabletitleList = map(lambda x: x.xpath('string(.)'), tabletitle)
tablehead = '|' + '|'.join(tabletitleList) + '|'
tableover = '|' + ':---:|' * len(tabletitle) # 居中显示

real_code

2.requests.get()获得的response的编码问题
1
2
3
html = requests.get('http://jwc.njupt.edu.cn/1594/list.htm',headers = headers)
html.encoding = 'utf-8'
#Requests库的自身编码为: r.encoding = ‘ISO-8859-1’

Github地址:Freedomisgood/SeverChan_Nyedu

Author: Mrli

Link: https://nymrli.top/2018/11/07/ServerChan-南邮教务处/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
定时执行Python脚本
NextPost >
高科GSWIFI江苏破解教程
CATALOG
  1. 1. SeverChan_Nyedu
    1. 1.0.0.1. 完成笔记:
      1. 1.0.0.1.1. 1.关于lxml中etree.xpath()对于tbody的处理
      2. 1.0.0.1.2. 2.requests.get()获得的response的编码问题