看书看得懵圈了。。。
要爬网页在单位的内部网里面,所以我贴出 url 大家也无法看到情况,直接摘抄修改了一下贴出来
目标表格大概是这样的:
<table id="outputtable1" class="tseb" width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr show="1" d="星期三" p="武汉" id="tr_109711" class="VputSection" t="2018-08-15 12:00" >
<td class="pg1">
<a href="javascript:void(0);" id="v_1911" class="bj"><code style="display:none">零件</code><i>310</i></a>
<s></s>
</td>
<td class="pg2" title="kingSize">
<span class="p_upi"><s></s>KS</span>
</td>
<td class="pg3">
<span title="下单时间:2018-08-15 9:30" style="display:none">9:30</span>
<span title="受理时间:2018-08-15 10:30" style="display:none">10:30</span>
</td>
</tr>
<tr show="1" d="星期三" p="天津" id="tr_109712" class="VputSection" t="2018-08-15 12:00" >
<td class="pg1">
<a href="javascript:void(0);" id="v_1911" class="bj"><code style="display:none">零件</code><i>311</i></a>
<s></s>
</td>
<td class="pg2" title="kingSize">
<span class="p_upi"><s></s>KS</span>
</td>
<td class="pg3">
<span title="下单时间:2018-08-15 9:32" style="display:none">9:32</span>
<span title="受理时间:2018-08-15 10:30" style="display:none">10:30</span>
</td>
</tr>
<tr show="1" d="星期三" p="南充" id="tr_109713" class="VputSection" t="2018-08-15 12:00" >
<td class="pg1">
<a href="javascript:void(0);" id="v_1911" class="bj"><code style="display:none">零件</code><i>312</i></a>
<s></s>
</td>
<td class="pg2" title="kingSize">
<span class="p_upi"><s></s>KS</span>
</td>
<td class="pg3">
<span title="下单时间:2018-08-15 9:37" style="display:none">9:37</span>
<span title="受理时间:2018-08-15 10:30" style="display:none">10:30</span>
</td>
</tr>
网页很简单,没太多的杂质,就表格 td > tr 而已,只想快速地使用 python 完成这个目标而不纠缠太多
table 标签里的 table id,class,tr 标签里的 show,d,p,class,t 的属性很重要,每次不确定,需要根据这些内容来做另外的一些处理工作,
现在只学到了 beautifulsoup,似乎 beautifulsoup 爬虫只能找到标签后,对标签首和标签闭合之间的内容做处理,而对标签里面的属性做不了处理?
第一个问题:请问各位高手,我应该再去看什么文档或者库方法,可以既对标签属性进行套取,也可以对标签闭合直接(的内容)也处理呢?
以下代码有部分是伪代码而且书写有错误,但应该能把事情表达清楚?
#coding=UTF-8
import requests
from bs4 import BeautifulSoup
import lxml
#这个类省略,伪代码代替
class adddata():
def __init__():
def write(...):
#省略
retrun xxx
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
url = 'http://10.11.12.1/QuerryForJsp.action?GoodId=179&type=ztcip22'
page = requests.get(url,headers=headers)
soup = BeautifulSoup(page.text, "lxml")
#暂时储存独立变量,方便理解方式而已,以后会用 data[0],[1],[2]这样存储
d=''
p=''
t=''
i = 0
for tr in soup.select('tr'):
#第二个问题:目标代码表格有三个 tr (不确定每次都是三个),如何做个循环历遍每个 tr,同时每个 tr 标签里的特定属性如何储存到上面三个变量中
d = ???
p = ???
t = ???
#第三个问题:如何判断当前 tr 标签里,有没有 t 属性? 属性很多,我裁剪了一些,有些目标属性有时候是不会出现的。。。
#第四个问题,如何判断当前 tr 标签里,t 属性是不是空字符?例如:t = "",啥也没有。。。
adddata.write(d,Data_d)
adddata.write(p,Data_p)
adddata.write(t,Data_t)
i = i + 1
print('有',i,'项数据处理完毕')
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.