爬虫---爬取搜狐所有的链接中包含足球的网页内容

该博客介绍了如何使用爬虫技术从搜狐网站出发,抓取所有包含‘足球’关键词的网页内容。首先设定种子地址,然后获取网页HTML,通过正则表达式筛选链接、图片和下载文件。提取有效链接,过滤无效资源,将包含足球内容的网页保存为html文件,文件名按顺序编号。难点在于正确使用正则表达式匹配网页链接。

过程:
种子地址:从哪里开始爬,可以是一个,也可以是多个
获取网页的html代码,还有一些元信息。
用正则:想要什么我就取什么。
1 链接:用于下次继续爬
2 图片
3 下载文件
取完了之后,保存,入库、写文件。
用数据做分析或者其他展示的用途。
练习:
爬取搜狐所有的链接,找到所有包含足球的网页内容,并进行下载保存。
文件序号从1.html。。。。。n.html
算法:
request访问sohu首页,获取源码
使用正则获取网页链接:建议大家获取所有的链接后打印一下内容,再看怎么处理链接。
处理网页链接:拼接http:// 过滤掉jpg\css\js\png等无效链接
放入爬取列表
爬之,判断是否包含关键字足球,如果有,保存到文件中。

# coding: utf-8
import requests
import re
r = requests.get("http://www.sohu.com")
#print(r.text)
valid_link = []
all_links = re.findall(r'href=\"(.*?)\" ',r.text)
for link in all_links:
    if link[-3:] not in ["ico","png","css","jpg","js","gif"]:
        if link.strip(
在Python中进行爬虫实战,爬取求是网周刊文章可从以下几个方面展开。 ### 整体介绍 在“爬虫实战——爬取求是网周刊文章(Educoder)”中提到,作为教育编程网站,Educoder提供了相关学习资源和实践项目,可通过爬虫获取有价值的知识并加以利用,并且会详细介绍使用爬虫技术爬取求是网周刊文章,还会附上相应的Python源代码 [^1]。 ### 具体步骤与代码 #### 获取新闻url 在“爬虫实战——求是网周刊文章爬取”中给出了获取求是周刊2019年第一期所有文章url的方法及代码示例。可编写一个爬虫,使用正则表达式获取目标url,步骤包括获取2019年第1期页面的源码并解决部分反爬机制、找到目标url所在位置并观察其特征、编写正则表达式获取目标数据。以下是示例代码: ```python import urllib.request as req import re def geturls(): # ********** Begin ********** # data = req.urlopen('http://www.qstheory.cn/dukan/qs/2014/2019-01/01/c_1123924172.htm') data = data.read().decode('utf-8') urls = re.findall(r'<p>  <a href="(.*?)"', data) # ********** End ********** # return urls if __name__ == "__main__": urls = geturls() for x in urls: print(x) ``` 在“Python应用 - 爬虫实战 - 求是网周刊文章爬取”中也给出了另一种获取url的代码示例,使用`requests`和`bs4`库: ```python import requests import bs4 import re headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.76' } def geturls(): # ********** Begin ********** # responde = requests.get(f'http://www.qstheory.cn/dukan/qs/2014/2019-01/01/c_1123924172.htm') responde.encoding = 'utf-8' content = responde.text soup = bs4.BeautifulSoup(content, 'html.parser') all_a = soup.find_all('a') urls = [] for a in all_a: if re.findall(r'\w*dukan\w*', a.get('href')) and '1123932149' not in str(a.get('href')): urls.append(a.get('href')) # ********** End ********** # return urls if __name__ == "__main__": urls = geturls() for x in urls: print(x) ``` ### 爬虫基本架构 在“爬虫实战——求是网周刊文章爬取(一)and 爬虫基本原理”中介绍了Python简单爬虫架构的组成部分,包括Url管理器、网页下载器和网页解析器。Url管理器管理将要爬取的url和已经爬取的url,并将待爬取的url传送给网页下载器;网页下载器将Url指定的网页下载下来保存为字符串,再传送给网页解析器进行解析;网页解析器一方面解释出有价值的数据,另一方面解析出字符串中的url并补充到url管理器。这三个模块形成一个循环,只要有未爬取的url,循环就会一直继续 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值