新手求教,我想要获取这个table中的内容,
爬取网站
图片没能上传上来,就是从这里开始的那个表格:
<table class="list-invecase">
<tbody>
<tr>
<td class="date">
<span class="verdana">2018-05-12</span>
我是这样写的:
import urllib.request
import requests
import re
from bs4 import BeautifulSoup
headers = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"}
page_html = requests.get('https://www.itjuzi.com/investfirm/1', headers=headers)
Soup = BeautifulSoup(page_html.text, 'lxml')
art_list = Soup.find('table')
art_list
但是得到的内容却是:
<table class="list-invecase">
<tbody></tbody>
</table>
请问应该如何获得我想要的日期,名称、行业等,我刚接触这个,很多不懂,请大家指导,谢谢咯
首先,爬这类网站你得看网页的源码,而不仅仅是右键检查。因为request.get获取的是网页的源码,而不是浏览器修饰后你看到的html。


通过网页源码可以看到
你获取的就是这玩意。甚至你可以soup.findAll('table'),能解析到的‘table’也只有这玩意。
本身可以跳过talbe标签,可以通过 class="verdana"的span标签、class="date"的td标签找得更细,但源码看
你所需要的东西是js渲染上去的,不是本身html代码里就有的。
所以你需要的东西在这里:https://www.itjuzi.com/invest...
去request.get这个url,再解析(可能需要用到json这个包),才能获得你想要的东西
其次,.find(‘table’)是遍历所有talbe标签后返回第一个<table>标签,在你不确定有多少<table>标签的情况下,你这样写也只返回第一个。所以可以用.findAll看看有多少table标签,确定第几个,或者像上面提到,给它加限定条件,比如Soup.find('table',class_='list-invecase'),或是Soup.find('span',class_='verdana')这样,更有利于你的寻找。
最后,建议官方文档,https://www.crummy.com/softwa...