【发布时间】:2016-01-14 13:57:52
【问题描述】:
这是我第一次进行网络抓取,我正在尝试抓取以下网站的网页 (1-...):
http://jobs.monster.com/search/?q=data%20science
使用python beautifulsoup,但似乎无法识别页面的标签。 标签看起来像这样:
<a href="?q=data-science&page=1" class="page-link">1</a>
我的部分代码如下所示:
import urlparse
import urllib
import re
from bs4 import BeautifulSoup
# start with this page
url = "http://jobs.monster.com/search/?q=data%20science"
#http://jobs.monster.com/search/?q=data%20science&page=2
# stack of urls from nytimes
urls = [url]
#print urls
# visited urls
visited = [url]
while len(urls) > 0:
try:
htmltext = urllib.urlopen(urls[0]).read()
except:
print urls[0]
soup = BeautifulSoup(htmltext)
urls.pop(0)
for tag in soup.find_all('a', {'class':'page-link'}):
print tag
我没有收到任何错误,但也没有打印任何内容...我猜这是因为 href 不是以 http/s 开头的?
谁能帮忙?
谢谢
【问题讨论】:
-
您尝试抓取的页面可能是由 javascript 动态生成的。 BeautifulSoup 和 urllib 都不执行 javascript,因此它看到的页面没有链接。将您正在获取的 htmltext 转储到本地文件中,并查看它实际获取的内容。
标签: python html beautifulsoup web-crawler