问答详情
源自:3-5 获取维基百科词条信息

为什么正确输入代码后运行结果是空白呢?

from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
import re

resp = urlopen("https://en.wikipedia.org/wiki/Main_Page").read().decode("utf-8")
soup = bs(resp,"html.parser")
listUrls = soup.findAll("a", herf=re.compile("^/wiki/"))
for url in listUrls:
   print(url["herf"])

提问者:慕粉3878587 2016-09-01 10:19

个回答

  • 秋名山车神
    2016-09-01 13:52:37
    已采纳

    最后一行 print(url["herf"])

    里面的 herf 改成 href 试试看

  • 秋名山车神
    2016-09-03 18:17:46

    没有写错的情况下,我还没有遇到过采集空白的问题,如果网站有防爬虫的机制,一般都是采集了一个错误页面,或者是和你使用浏览器看到的样子不一样的HTML代码。

    网站是服务器来判断的,而服务器没有多么的聪明,能够区分人和爬虫,再精密的检查,也能够通过程序代码来破解,所以大部分网站防爬虫最简单的手段就是通过验证码和验证问题,就算是百度也是这么做的。

  • 慕粉3878587
    2016-09-03 00:43:35

    老师,假如程序没写错的情况下采集结果空白,怎么判断网站反爬虫机制起作用了呢?有没有相关的课程学习下?

  • 慕粉3878587
    2016-09-03 00:41:16

    真是打错了!汗颜,谢谢老师!