沪江网考研词汇爬取
这个呢是寒假小任务的一部分,在寒假的最后一天才完成一部分也是有点失败。。。
这个的思路和上一篇爬取图片的思路大致一样都是先从大页面获取小页面的链接,然后再进行信息获取,不过这次遇到了一个小坑点。
首先还是先分析页面的源代码找到每个单词的链接,如图:

标签a href=" "中的内容就是我们点开每一个单词的链接。我们要用正则表达式获取他。
然后进入单词的链接,获取我们需要的信息。
如图:

现在我们可以在源代码中找到我们需要的信息(汉语意思),这些我们可以用BeautifulSoup的select方法解决。
而这次的坑点就是当我们用select(soup.select(‘div.sp-lexicon-word-comment clearfix’))提取信息时会发现我们提取的列表一直是空的,也就是提取不到。这是因为comment clearfix之间空格无法识别,我们用 '.'替换就好了。soup.select(‘div.sp-lexicon-word-comment.clearfix’)
这是我的朋友告诉我的,大家可以搜索工程小先锋或者戳下面的这个链接来查看这位大佬的博客
https://blog.csdn.net/qq_43391383?t=1
现在就是我们开代码的时间了!!!!!
代码呈上:
import requests
from bs4 import BeautifulSoup
import reheaders = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36"
}
def get_HTML(url):#获取页面信息try:r = requests.get(url, headers = headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def copy_url(html):#获得页面中单词链接words_url = re.findall('.*?',html,re.S)return words_urldef dowload_url(html,word_name):#获取单词页面的汉语意思并保存soup = BeautifulSoup(html,"html.parser")word_list = soup.select('div.sp-lexicon-word-comment.clearfix')for word in word_list:with open("F:/四级单词/{}.txt".format(word_name),"a+",encoding = "UTF-8") as f:f.write(word.get_text())if __name__ == "__main__":urls = ["https://www.hujiang.com/ciku/zuixinkaoyanyingyucihui_{0}/".format(i) for i in range(1,276)]for url in urls:html = get_HTML(url)words_url = copy_url(html)for word_url in words_url:new_url = "https://www.hujiang.com" + word_urlword_name = word_url.split("/")[2]word_html = get_HTML(new_url)dowload_url(word_html,word_name)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
