urls=[{'url': 'https://www.zhhcy.com/', 'date': '2022-10-28T09:10:20+00:00'}, ]创建sqlite数据库bq_urls表,将urls里的数据写入bq_urls表,并且把其中的url进行去重处理。python代码实现
时间: 2023-04-08 16:01:57 浏览: 278
以下是Python代码实现:
```python
import sqlite3
# 创建sqlite数据库连接
conn = sqlite3.connect('test.db')
# 创建bq_urls表
conn.execute('''CREATE TABLE IF NOT EXISTS bq_urls
(ID INTEGER PRIMARY KEY AUTOINCREMENT,
URL TEXT NOT NULL,
DATE TEXT NOT NULL);''')
# 获取urls列表
urls = [{'url': 'https://www.zhhcy.com/', 'date': '2022-10-28T09:10:20 00:00'}, ]
# 将urls里的数据写入bq_urls表,并去重
for url in urls:
conn.execute("INSERT OR IGNORE INTO bq_urls (URL, DATE) VALUES (?, ?)", (url['url'], url['date']))
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
```
这段代码会创建一个名为test.db的sqlite数据库,并在其中创建一个名为bq_urls的表。然后,它会将urls列表中的数据写入bq_urls表,并在写入时进行去重处理。最后,它会提交更改并关闭数据库连接。
相关问题
爬取https://www.kluniv.edu.cn/jzgcxy/szdw/jsml.htm图片
我可以给你提供一个Python爬取图片的示例代码,你可以参考一下:
```python
import requests
from bs4 import BeautifulSoup
import os
# 设置请求头
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'}
# 请求页面并解析
url = 'https://www.kluniv.edu.cn/jzgcxy/szdw/jsml.htm'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取所有图片的链接
img_urls = []
for img in soup.find_all('img'):
img_url = img['src']
if 'http' not in img_url:
img_url = 'https://www.kluniv.edu.cn' + img_url # 处理相对路径
img_urls.append(img_url)
# 创建目录保存图片
if not os.path.exists('images'):
os.makedirs('images')
# 下载图片
for i, img_url in enumerate(img_urls):
response = requests.get(img_url, headers=headers)
with open(f'images/{i}.jpg', 'wb') as f:
f.write(response.content)
```
这段代码会爬取页面 https://www.kluniv.edu.cn/jzgcxy/szdw/jsml.htm 上所有图片并保存到一个名为 `images` 的目录中。
urls = ['https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page={}'.format(i) for i in range(1, 6)] 什么意思
这行代码是一个列表推导式,用于生成一个包含了需要爬取的页面URL的列表。
具体来说,这个列表推导式的含义是:生成一个包含了5个元素的列表,每个元素都是一个字符串,表示需要爬取的页面URL。其中,`{}` 是一个占位符,它会被后面的 `format` 方法替换为对应的页码。
因为这个网站共有5页热门帖子,所以这个列表推导式的 `range` 函数是从1到6(不包括6),生成了5个页码。最终生成的URL列表如下:
```python
[
'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page=1',
'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page=2',
'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page=3',
'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page=4',
'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page=5'
]
```
这样我们就可以通过遍历这个URL列表,依次获取每个页面的内容了。