如何使用 Python 3 抓取每个 td 标签内容

文森特·袁

我要分析的内容如下图:

<tr>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">1470-160X</td>

<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;"><a href="http://www.letpub.com.cn/index.php?journalid=2408&amp;page=journalapp&amp;view=detail" style="color:#0099FF; font-size:12px; font-weight:bold; text-decoration:underline;" target="_blank">ECOLOGICAL INDICATORS</a><br><br><font color="grey">ECOL INDIC</font></br></br></td>

<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">3.190</td>

<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">2区</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">环境科学与生态学</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">环境科学</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">SCIE</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">No</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">容易</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">约3.0个月</td>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;"><a href="http://www.letpub.com.cn/index.php?page=journalapp&amp;view=detail&amp;journalid=2408&amp;xuanxiangk_id=2#xuanxk_3" style="color:#0099FF; text-decoration:underline;" target="_blank">文章</a>
<td style="border:1px #DDD solid; border-collapse:collapse; text-align:left; padding:8px 8px 8px 8px;">33977</td></td>

</tr>

你还可以看到截图(一个演示):

所以,我想做的是得到每个 td 内容并将其添加到相应的列表中。

我的代码片段如下:

journal_ISSN = []
journal_name = []
journal_affecting_factors = []
journal_JCR_zone = []
journal_parent_class = []
journal_sub_class = []
journal_SCI = []
journal_acception = []
journal_period = []

for i in range(2, 3):
url = "http://www.letpub.com.cn/index.php?page=journalapp&view=search&searchname=&searchissn=&searchfield=&searchimpactlow=&searchimpacthigh=&searchimpacttrend=&searchscitype=&searchcategory1=%E7%8E%AF%E5%A2%83%E7%A7%91%E5%AD%A6%E4%B8%8E%E7%94%9F%E6%80%81%E5%AD%A6&searchcategory2=%E7%8E%AF%E5%A2%83%E7%A7%91%E5%AD%A6&searchjcrkind=&searchopenaccess=&searchsort=relevance&searchsortorder=desc&currentsearchpage="
resp = urlopen('%s%d%s' % (url, i, 
soup = BeautifulSoup(resp, "html.parser")


journal_table = soup.findAll("table", {"class": "table_yjfx"})
# rows = journal_table.find_All("tr")[1:]
print(journal_table)

for line in journal_table:
    rows = line.findAll('tr')
    for single_line in rows[1:10]:
        col = single_line.findAll('td')
        journal_ISSN.append(col[0].string.strip())
        journal_name.append(col[1].string.strip())
        journal_affecting_factors.append(col[2].string.strip())
        journal_JCR_zone.append(col[3].string.strip())
        journal_parent_class.append(col[4].string.strip())
        journal_sub_class.append(col[5].string.strip())
        journal_SCI.append(col[6].string.strip())
        journal_acception.append(col[7].string.strip())
        journal_period.append(col[8].string.strip())

没有办法完成它。任何人都可以帮忙吗?

我收到了错误消息:

AttributeError: 'ResultSet' 对象没有属性 'string'

小D

您可以使用text代替string和更改您的 for 循环,以下是完整代码供您参考:

from bs4 import BeautifulSoup
from urllib2 import urlopen
journal_ISSN = []
journal_name = []
journal_affecting_factors = []
journal_JCR_zone = []
journal_parent_class = []
journal_sub_class = []
journal_SCI = []
journal_acception = []
journal_period = []
url = "http://www.letpub.com.cn/index.php?page=journalapp&view=search&searchname=&searchissn=&searchfield=&searchimpactlow=&searchimpacthigh=&searchimpacttrend=&searchscitype=&searchcategory1=%E7%8E%AF%E5%A2%83%E7%A7%91%E5%AD%A6%E4%B8%8E%E7%94%9F%E6%80%81%E5%AD%A6&searchcategory2=%E7%8E%AF%E5%A2%83%E7%A7%91%E5%AD%A6&searchjcrkind=&searchopenaccess=&searchsort=relevance&searchsortorder=desc&currentsearchpage=2"
resp = urlopen(url) 
soup = BeautifulSoup(resp.read().decode('utf-8'), "html.parser") #decode to utf-8
journal_table = soup.find("table", {"class": "table_yjfx"})
rows = journal_table.find_all('tr')[2:-1] #filter to get only table data
for row in rows:
    col = row.find_all('td')
    journal_ISSN.append(col[0].text.strip())
    journal_name.append(col[1].text.strip())
    journal_affecting_factors.append(col[2].text.strip())
    journal_JCR_zone.append(col[3].text.strip())
    journal_parent_class.append(col[4].text.strip())
    journal_sub_class.append(col[5].text.strip())
    journal_SCI.append(col[6].text.strip())
    journal_acception.append(col[7].text.strip())
    journal_period.append(col[8].text.strip())

然后你可以打印journal_JCR_zone[0]journal_parent_class[0]

print journal_JCR_zone[0]
print journal_parent_class[0]

输出:

4区
环境科学与生态学

或者您可以将结果写入文件,如下所示:

with open('chinesechar.txt','wb') as outf:
    outf.write(journal_sub_class[0].encode("utf-8"))

将写入环境科学文件chinesechar.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 Python 3 从 html 标签样式中获取内容?

来自分类Dev

使用 Python、Selenium 和 BeautifulSoup 来抓取标签的内容?

来自分类Dev

在 Python 中,如何使用多个 <td> 抓取表?

来自分类Dev

Python Beautiful Soup Table数据抓取特定TD标签

来自分类Dev

如何使动态内容在td标签内全高的标签

来自分类Dev

如何使用AJAX提取每个标签的内容?Rails4,Bootstrap3

来自分类Dev

如何使用Python BeautifulSoup提取td HTML标签?

来自分类Dev

Web Scraping <td> 标签问题 - 带有 Lxml 的 Python 3

来自分类Dev

HTML 使用基于 td 标签内容的 javascript 更改字体粗细

来自分类Dev

如何使用循环从表中抓取数据以使用python获取所有td数据

来自分类Dev

当网站阻止不抓取内容时,如何使用Python抓取?

来自分类Dev

Python-如何使用“ requests&BeautifulSoup”抓取Tr / Td表数据

来自分类Dev

使用python抓取动态内容

来自分类Dev

Python BS4抓取表在<td>标签中具有多个值

来自分类Dev

在Python中使用Beautifulsoop4解析内部td标签

来自分类Dev

使用Selenium Python选择span / td标签附近的锚点

来自分类Dev

PDF抓取:如何为在Python中抓取的每个pdf自动创建txt文件?

来自分类Dev

如何通过Java进行网页抓取时避免td标签中的HTML空间

来自分类Dev

如何通过Java进行网页抓取时避免td标签中的HTML空间

来自分类Dev

如何在python中使用BeautifulSoup抓取隐藏的表内容?

来自分类Dev

使用-xpath -selenium -python访问标签的内容

来自分类Dev

如何使用硒(python)获取div标签的内容

来自分类Dev

如何在每个X列之后使用python抓取在Excel文件中拆分列?

来自分类Dev

使用 Python 和 BeautifulSoup 抓取 alt 标签

来自分类Dev

Python - 使用 HTML 标签的网页抓取

来自分类Dev

带有多个相同类别的td的td的抓取抓取内容

来自分类Dev

带有多个相同类别的td的td的抓取抓取内容

来自分类Dev

使用python-Scrapy抓取动态内容

来自分类Dev

使用python抓取jsp网页的内容

Related 相关文章

  1. 1

    如何使用 Python 3 从 html 标签样式中获取内容?

  2. 2

    使用 Python、Selenium 和 BeautifulSoup 来抓取标签的内容?

  3. 3

    在 Python 中,如何使用多个 <td> 抓取表?

  4. 4

    Python Beautiful Soup Table数据抓取特定TD标签

  5. 5

    如何使动态内容在td标签内全高的标签

  6. 6

    如何使用AJAX提取每个标签的内容?Rails4,Bootstrap3

  7. 7

    如何使用Python BeautifulSoup提取td HTML标签?

  8. 8

    Web Scraping <td> 标签问题 - 带有 Lxml 的 Python 3

  9. 9

    HTML 使用基于 td 标签内容的 javascript 更改字体粗细

  10. 10

    如何使用循环从表中抓取数据以使用python获取所有td数据

  11. 11

    当网站阻止不抓取内容时,如何使用Python抓取?

  12. 12

    Python-如何使用“ requests&BeautifulSoup”抓取Tr / Td表数据

  13. 13

    使用python抓取动态内容

  14. 14

    Python BS4抓取表在<td>标签中具有多个值

  15. 15

    在Python中使用Beautifulsoop4解析内部td标签

  16. 16

    使用Selenium Python选择span / td标签附近的锚点

  17. 17

    PDF抓取:如何为在Python中抓取的每个pdf自动创建txt文件?

  18. 18

    如何通过Java进行网页抓取时避免td标签中的HTML空间

  19. 19

    如何通过Java进行网页抓取时避免td标签中的HTML空间

  20. 20

    如何在python中使用BeautifulSoup抓取隐藏的表内容?

  21. 21

    使用-xpath -selenium -python访问标签的内容

  22. 22

    如何使用硒(python)获取div标签的内容

  23. 23

    如何在每个X列之后使用python抓取在Excel文件中拆分列?

  24. 24

    使用 Python 和 BeautifulSoup 抓取 alt 标签

  25. 25

    Python - 使用 HTML 标签的网页抓取

  26. 26

    带有多个相同类别的td的td的抓取抓取内容

  27. 27

    带有多个相同类别的td的td的抓取抓取内容

  28. 28

    使用python-Scrapy抓取动态内容

  29. 29

    使用python抓取jsp网页的内容

热门标签

归档