爬虫问题
本帖最后由 齐紫荆。 于 2020-4-1 17:30 编辑如图,为啥爬出来的tr是个空的啊 确定几个东西:
1,URL没错?
2,不加headers能爬?
3,soup.find确定找到东西了? 没有这个 页面啊 你是从哪里跳转过去的 qiuyouzhi 发表于 2020-4-1 16:56
确定几个东西:
1,URL没错?
2,不加headers能爬?
页面没错啊,我用r.status_code返回是200,应该是对的,table = soup.find('table')也有东西啊 齐紫荆。 发表于 2020-4-1 17:28
页面没错啊,我用r.status_code返回是200,应该是对的,table = soup.find('table')也有东西啊
那你确定<table>有子标签,且你的isinstance参数拼写正确?
那个bs4.element.Tag为何点后有空格?
去掉试试 齐紫荆。 发表于 2020-4-1 17:28
页面没错啊,我用r.status_code返回是200,应该是对的,table = soup.find('table')也有东西啊
顺便你把find后面加个参数:
class_="wikitable"
我怀疑你的find找到第一个table后,里面没有子标签
qiuyouzhi 发表于 2020-4-1 17:31
那你确定有子标签,且你的isinstance参数拼写正确?
那个bs4.element.Tag为何点后有空格?
去掉试试
大佬你看我补的那个图,那个tr应该是table的子标签吧 齐紫荆。 发表于 2020-4-1 17:34
大佬你看我补的那个图,那个tr应该是table的子标签吧
我又回复你了,看下6楼 qiuyouzhi 发表于 2020-4-1 17:35
我又回复你了,看下6楼
>>> table = soup.find('table',class_="wikitable").children
>>> for tr in table:
if isinstance(tr,bs4.element.Tag):
th = tr('th')
>>> th
[]
这样吗还是空的啊 齐紫荆。 发表于 2020-4-1 17:44
>>> table = soup.find('table',class_="wikitable").children
>>> for tr in table:
if isinstance(t ...
给你调试了一下,正确方法是酱紫的:
>>> for each in list(table):
print(each.string) 本帖最后由 qiuyouzhi 于 2020-4-1 18:01 编辑
齐紫荆。 发表于 2020-4-1 17:44
>>> table = soup.find('table',class_="wikitable").children
>>> for tr in table:
if isinstance(t ...
顺便给你包装了一下:
from requests import get
from bs4 import BeautifulSoup as BS
def open_url(url):
# 可以加headers
res = get(url)
return res
def get_Info(res):
soup = BS(res.text, "html.parser")
table = soup.find('table').children
i = 0 # 它用于判断何时该换行
for tr in list(table):
if i == 2:
print()
i = 0
print(tr.string.strip(), end = '') # strip()删除空格
i += 1
def main():
url = "https://yanyu.huijiwiki.com/wiki/伙伴成长以及加点属性排行一览"
get_Info(open_url(url))
if __name__ == "__main__":
main() qiuyouzhi 发表于 2020-4-1 17:54
给你调试了一下,正确方法是酱紫的:
大佬这个只能输出第一排,怎么输出整个表啊 齐紫荆。 发表于 2020-4-1 18:00
大佬这个只能输出第一排,怎么输出整个表啊
我给你包装了一下,详情看11楼
我这里测试是没有问题的 qiuyouzhi 发表于 2020-4-1 17:59
顺便给你包装了一下:
感谢大佬
页:
[1]