给我一段完整的python爬虫爬取CSDN网页数据的代码
时间: 2023-09-20 20:07:24 浏览: 200
好的,这是一个简单的示例代码,可以爬取CSDN某个用户的博客列表:
```python
import requests
from bs4 import BeautifulSoup
# 设置请求头,模拟浏览器请求
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'}
# 要爬取的CSDN博客首页链接
url = 'https://blog.csdn.net/username'
# 发送请求并获取响应内容
response = requests.get(url, headers=headers)
html = response.content
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html, 'html.parser')
# 获取博客列表中的所有文章标题
titles = []
for title in soup.select('.article-title'):
titles.append(title.text.strip())
# 打印结果
print(titles)
```
需要注意的是,爬取网站数据需要遵守相关法律法规和网站规定,不得进行侵犯隐私、破坏网站功能等违法行为。
相关问题
给我一段完整的python爬虫爬取CSDN网页数据可视化的代码
在Python中,我们可以使用一些库如BeautifulSoup、requests和matplotlib等来实现简单的网页数据抓取并可视化。下面是一个基本的例子,假设我们要抓取CSDN博客文章标题并统计词频:
```python
import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
# 爬取CSDN页面
url = 'https://blog.csdn.net/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取文章标题
titles = [title.text for title in soup.find_all('a', class_='title')]
# 清洗数据(例如去除HTML标签)
clean_titles = [' '.join(word for word in title.lower().split()) for title in titles]
# 使用正则表达式提取单词,并转换成列表
words = [word.strip() for title in clean_titles for word in re.findall(r'\b\w+\b', title)]
# 统计词频
word_freq = dict(zip(words, [0] * len(words)))
for word in words:
word_freq[word] += 1
# 数据可视化
plt.figure(figsize=(10, 5))
word_counts = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
x轴, y轴 = zip(*word_counts)
plt.bar(x轴, y轴)
plt.xlabel('Words')
plt.ylabel('Frequency')
plt.title('Word Frequency of CSDN Blog Titles')
plt.show()
python爬虫爬取电影数据
要使用Python爬虫来爬取电影数据,你可以按照以下步骤进行操作:
1. 首先,你需要打开一个文件对象,并以追加的形式打开一个名为"data.csv"的文件。然后,使用csv库的writer方法创建一个csv_writer对象来写入数据。接下来,你可以使用正则表达式来提取电影数据,并将提取的值写入到"data.csv"文件中。代码示例如下:
```
# 以追加的形式打开文件对象
f = open('data.csv', mode='a')
csv_write = csv.writer(f)
# 使用正则表达式提取电影数据并写入文件
for it in p.finditer(response.text):
# 将迭代器it转换为字典
dic = it.groupdict()
# 对键为year的值去除空格
dic['year'] = dic['year'].strip()
# 将字典的values写入data.csv
csv_write.writerow(dic.values())
print('写入完成')
```
这段代码会将提取的电影数据写入到"data.csv"文件中。
2. 其次,你可以定义一个名为"boxoffice"的函数,用来爬取电影的票房数据。你需要通过访问"http://58921.com/boxoffice"网页来获取数据,并使用XPath表达式(//*[@id="2"]/div/h3/text())来提取票房数据。代码示例如下:
```
def boxoffice(url):
# 票房数据的URL
boxoffice_url = 'http://58921.com/boxoffice'
# 发送请求并提取数据
response = requests.get(boxoffice_url)
result = get_page(response.text, boxoffice_regex)
return result<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Python爬虫:爬取电影排行榜数据并写入csv文件](https://blog.csdn.net/qq_51447436/article/details/126024194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Python 爬虫 | 电影数据的获取](https://blog.csdn.net/weixin_44623587/article/details/126070881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文