if not os.path.exists("D:/Rourou/Study/3.2/ZHSJ/KGQA_HLM-master/KGQA_HLM-master/spider/images"): os.mkdir("D:/Rourou/Study/3.2/ZHSJ/KGQA_HLM-master/KGQA_HLM-master/spider/images") headers = {} headers["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" def get_json(character_arr): data={} for i in set(character_arr): print(i) url=r'https://baike.baidu.com/item/'+i url = quote(url, safe = string.printable) req = request.Request(url, headers=headers) response = request.urlopen(req, timeout=20) try: html = response.read().decode('utf-8') soup = BeautifulSoup(html, 'html.parser', ) res = soup.find(class_="summary-pic") pic_name = str(i) + '.jpg' img_src = res.find('img').get('src') request.urlretrieve(img_src,pic_name) except : print("找不到图片") res_key=soup.find_all(class_ ="basicInfo-item name") res_val=soup.find_all(class_ ="basicInfo-item value") key=[ik.get_text().strip().replace("\n","、") for ik in res_key] value = [iv.get_text().strip().replace("\n", "、") for iv in res_val] item=dict(zip(key,value)) data[str(i)]=item if not os.path.exists("../json"): os.mkdir("../json") f = codecs.open('../json/data.json','w','utf-8') f.write(json.dumps(data, ensure_ascii=False)) if __name__ == "__main__": character_arr=get_character() os.chdir(os.path.join(os.getcwd(), 'images')) get_json(character_arr)
时间: 2024-04-21 08:24:30 浏览: 202
这段代码是之前提供的代码的一个修改版本,主要做了以下更改:
1. 添加了一个判断语句,用于检查存储图片的文件夹是否存在,如果不存在则创建。
2. 添加了一个`headers`字典,用于设置HTTP请求的User-Agent头部信息。
3. 将文件夹路径中的绝对路径修改为相对路径,以使代码更具通用性。
4. 在`if __name__ == "__main__":`条件下,添加了切换到存储图片的文件夹的操作。
请注意,代码中使用了一些未导入的模块和库,例如`quote`、`request`、`headers`、`BeautifulSoup`、`string`、`os`、`json`和`codecs`。你需要自行导入这些模块并设置相应的参数。此外,还需要定义`get_character()`函数来获取角色数组的值。
相关问题
帮我做简单的修改 修改成windows版本能跑的 CLEAR_UTILS = False if not os.path.exists('./utils'): if os.path.exists('../build-utils/src/utils'): os.system('ln -s ../build-utils/src/utils utils') else: if not os.path.exists('./subproj/build-utils/src/utils'): if not os.path.exists('./subproj'): os.makedirs('./subproj') os.system('git clone https://github.com/sk1project/build-utils ' 'subproj/build-utils') os.system('ln -s ./subproj/build-utils/src/utils utils') CLEAR_UTILS = True CLEAR_UC2 = False
为了在Windows上运行,你需要做以下修改:
```python
import os
import shutil
CLEAR_UTILS = False
if not os.path.exists('./utils'):
if os.path.exists('../build-utils/src/utils'):
os.symlink('../build-utils/src/utils', 'utils', target_is_directory=True)
else:
if not os.path.exists('./subproj/build-utils/src/utils'):
if not os.path.exists('./subproj'):
os.makedirs('./subproj')
os.system('git clone https://github.com/sk1project/build-utils '
'subproj/build-utils')
os.symlink('./subproj/build-utils/src/utils', 'utils', target_is_directory=True)
CLEAR_UTILS = True
CLEAR_UC2 = False
```
这里使用了`os.symlink()`函数来创建符号链接。`target_is_directory=True`表示目标是一个文件夹。另外,如果需要清除`utils`文件夹和`UC2`的操作,请根据具体需求添加相应的代码。
if os.path.exists('./data/users.json'):
这段代码使用`os.path.exists()`函数检查当前目录下是否存在名为`users.json`的文件。具体来说,`os.path.exists()`函数用于判断指定路径是否存在,如果存在则返回`True`,否则返回`False`。在这里,我们传递的路径为`'./data/users.json'`,表示当前目录下的`data`子目录中的`users.json`文件。如果该文件存在,则会执行`if`语句下面的代码块;否则会执行`else`语句下面的代码块。
阅读全文