程序进程和线程之间的关系
对多线程和多进程的理解
以上内容只做简单总结,不理解的可以查阅其他文章。
线程状态
- 堵塞状态线程想要重新运行先要加入就绪队列
- 线程一旦阻塞,造成线程调度混乱;线程的执行状态是无法控制的。线程的执行状态是混乱的
- 想要有序,需要使用队列
队列的作用对象不是线程,而是任务
pymongo写入mongo
在这里插入一个知识点,方面理解下面的程序:
host和port有默认值可以不写,其它代码可以与mongo命令对比学习。item为文档数据。
线程创建方法
主要有三种多线程爬虫创建方式:
(一)使用python已经设置好的模块
示例代码:
import requests
import pymongo
import threading
def get_data_json(url, page):
""""""
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
params = {
'timestamp': '1595207127325',
'countryId': '',
'cityId': '',
'bgIds': '',
'productId': '',
'categoryId': '',
'parentCategoryId': '',
'attrId': '',
'keyword': '',
'pageIndex': page,
'pageSize': '10',
'language': 'zh-cn',
'area': 'cn',
}
response = requests.get(url, headers=headers, params=params)
return response.json()
def write_to_mongo(data):
""""""
print(data)
db['招聘信息'].update({'PostId':data['PostId']},{'$set&#