python3爬取新闻网站的所有新闻-新手起步_python3爬取新闻网站的所有新闻-新手起步...

本文适合初学者,介绍如何使用Python3爬取凤凰新闻网的新闻。内容包括环境配置、理解网页结构、正则表达式、BeautifulSoup解析及递归遍历。在Windows环境下,通过urllib和Beautifulsoup库实现对新闻标题和正文的抓取,并处理编码问题。
摘要由CSDN通过智能技术生成

该篇文章适用于新手,让大家在刚接触爬虫的时候少踩点坑。作者接触python也有几个月时间了,最近要用python做数据采集的工作,因此要用爬虫去爬取各大门户网站。

好了,废话不多说,直接切入正题。

(声明:我整个工作都是在windows下进行的。)

1.环境配置。

python就够了,关于windows下环境搭建,网上教程很多。

这里我附一个。(http://www..com/windinsky/archive/2012/09/20/2695520.html)

python环境确定搭建成功,就可以开始写程序去爬虫了。

2.要明确你所要爬取的网站结构。

(1)url

爬虫,实际上就是解析页面的url, 以及每个页面的标签元素(html那些)。因此,要先对你所要爬取的页面 url和内容的布局非常了解。

比如,我爬取的是凤凰网的所有新闻。 凤凰网上,大部分新闻正文的页面链接,都是这种形式,ifeng前面是新闻的分类,http://news.ifeng.com/a/20170623/51308599_0.shtml。

找到了规律,就可以用正则表达式把这些页面提取出来。

关于正则表达式的学习,网上也有很多教程。这里给大家附一个比较好的链接 http://www.jb51.net/article/57150.htm

(2)页面中的标签元素

我要提取的是新闻的标题和正文内容。 如前面所说,我找到了我想要的新闻页面,可以在浏览器里用F12, 来观察页面布局。

比如凤凰网新闻正文页面, 标题都在

好的,这里提供一个简单的爬取猎聘大数据岗位相关信息的Python代码,具体步骤如下: 1. 导入所需库:requests、bs4、pandas 2. 定义一个函数,用于爬取指定页面的数据,并将数据转换为DataFrame格式 3. 定义一个循环语句,用于爬取多个页面的数据 4. 将所有爬取到的数据合并为一个DataFrame,并保存为Excel文件 代码如下: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 定义一个函数,用于爬取指定页面的数据,并将数据转换为DataFrame格式 def get_data(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'lxml') job_list = soup.find_all('div', class_='job-info') data = [] for job in job_list: job_title = job.find('h3').text.strip() company = job.find('p', class_='company-name').text.strip() salary = job.find('span', class_='text-warning').text.strip() location = job.find('p', class_='area').text.strip() experience = job.find('p', class_='experience').text.strip() education = job.find('p', class_='education').text.strip() job_desc = job.find('p', class_='temptation').text.strip() data.append([job_title, company, salary, location, experience, education, job_desc]) df = pd.DataFrame(data, columns=['职位名称', '公司名称', '薪资', '工作地点', '工作经验', '教育程度', '职位描述']) return df # 定义一个循环语句,用于爬取多个页面的数据 result = pd.DataFrame() for i in range(1, 11): url = 'https://www.liepin.com/zhaopin/?key=大数据&d_sfrom=search_fp&headckid=8cfa3a6d7e4f2f4d&flushckid=1&d_pageSize=40&d_curPage={}'.format(i) df = get_data(url) result = pd.concat([result, df], ignore_index=True) # 将所有爬取到的数据合并为一个DataFrame,并保存为Excel文件 result.to_excel('大数据岗位.xlsx', index=False) print('数据已保存!') ``` 其中,for循环语句中的range(1, 11)表示爬取10页数据,可以根据需要进行修改。另外,最后一行代码将所有爬取到的数据保存为Excel文件,文件名为“大数据岗位.xlsx”,可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值