首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何抓取既包含纯文本又包含“双引号”文本的表数据?

问如何抓取既包含纯文本又包含“双引号”文本的表数据?
EN

Stack Overflow用户
提问于 2019-08-01 23:41:20
回答 2查看 367关注 0票数 0

我试图从zone-h.org网页上抓取数据。首先,我通过在脚本中添加cookie绕过了网页captcha错误。然后我用BeautifulSoup抓取这个表并存储它。但是,其中一列没有纯文本;信息存在于引号("...")中。

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = "http://www.zone-h.org/archive/filter=1/published=0/domain=twitter/fulltext=1/page=1?"
cookie = {'PHPSESSID': 'XXXXXXXXXXX','ZHE':'XXXXXXXXXXXX'}
response = requests.post(url, cookies=cookie)
print(response)
data = response.text
soup = BeautifulSoup(data,'lxml')
table = soup.find_all('table')[0] 
df = pd.read_html(str(table))[0]
df_domain = pd.DataFrame(df)
df_domain.head()

如何从L (Location)列获取数据?本栏目的来源是;

代码语言:javascript
复制
<td><img src="/images/cflags/png/us.png" alt="United States" title="United States"></td>

您对从title获取数据(美国)有何建议?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-02 00:07:18

要从列中获取数据,需要逐行遍历表并从<img> attribute title=中获取数据

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests

url = "http://www.zone-h.org/archive/filter=1/published=0/domain=twitter/fulltext=1/page=1?"
cookie = {'PHPSESSID': 'XXX','ZHE':'XXX'}
response = requests.post(url, cookies=cookie)
data = response.text
soup = BeautifulSoup(data,'lxml')

rows = []
for tr in soup.select('tr')[:-2]:
    row = []
    for td in tr.select('td'):
        if td.text.strip():
            row.append(td.text.strip())
        else:
            img = td.select_one('img[title]')
            if img:
                row.append(img['title'])
            else:
                row.append('')
    rows.append(row)

from textwrap import shorten
print(''.join('{: <20}'.format(d) for d in rows[0]))
for row in rows[1:]:
    print(''.join('{: <20}'.format(shorten(d, 20)) for d in row))

最后一个表在变量rows中。您可以将其导入到熊猫中。要将其打印到屏幕上:

代码语言:javascript
复制
Time                Notifier            H                   M                   R                   L                                       Domain              OS                  View                
2019/02/11          RxR                                                                                                                     [...]               Linux               mirror              
2019/01/24          Al1ne3737           H                                                           United States                           twitterlike.com.br  Linux               mirror              
2019/01/23          Psycho Crew         H                                                           Cyprus                                  [...]               Unknown             mirror              
2018/08/11          Iran is winner trump                                        R                   United States                           [...]               Unknown             mirror              
2018/05/08          İllegalHackerz                                                                  Turkey                                  [...]               MacOSX              mirror              
2018/01/04          BIGM4N                                                      R                   United States                           [...]               Unknown             mirror              
2017/09/27          Mr.str3_at                                                                      United States                           [...]               Linux               mirror              
2017/08/02          SkullZ                                                      R                   United States                           [...]               Unknown             mirror              
2017/07/21          Dex hacker          H                                                           United States                           cdn- [...]          Linux               mirror              
2017/07/21          Dex hacker          H                                                           United States                           [...]               Linux               mirror              
2017/07/08          KusterAttacker      H                                                           France                                  [...]               Linux               mirror              
2017/05/22          GeNErAL                                                                         United States                           [...]               Linux               mirror              
2017/02/11          SA3D HaCk3D                                                                     United States                           [...]               Linux               mirror              
2017/02/07          SA3D HaCk3D                                                                     United States                           [...]               Linux               mirror              
2017/02/06          SA3D HaCk3D                                                                     Netherlands                             [...]               Linux               mirror              
2017/02/06          Imam                                                                            Netherlands                             [...]               Linux               mirror              
2017/02/06          BALA SNIPER                                                                     United States                           [...]               Linux               mirror              
2016/11/12          jrb                 H                                                           Indonesia                               twitter.co.mz       Linux               mirror              
2016/09/22          ..:<h1>:..          H                                                           United States                           twitter.net         Linux               mirror              
2016/07/03          ByNemesis           H                                                           Turkey                                  twitterdukkan.com   Linux               mirror              
2016/07/01          Hmei7               H                                       R                   United States                           twitter.com         Unknown             mirror              
2016/06/08          WoKaBoYa            H                                                           United States                           [...]               Linux               mirror              
2016/01/02          Akıncılar                                                                       Turkey                                  [...]               Linux               mirror              
2015/12/27          ScAmA               H                                                           United States                           www.twitter-ar.com  Linux               mirror              
2015/09/24          Hacked By [...]     H                                                           United States                           ikilltwitter.com    Win 2003            mirror              
票数 1
EN

Stack Overflow用户

发布于 2019-08-02 00:00:59

如果DataFrame中'L‘列中的值为空,或者不能用于检索所需的位置值,我将使用BeautifulSoup分析整个表,在值<tr>和<td>上迭代以从头开始创建DataFrame。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57312607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档