if __name__ == '__main__': file_name = '51job-python开发岗位.csv' key_words = ['python开发', 'django开发'] for key in key_words: for page in range(1, 101): print(f'抓取职位关键词:{key} 的第 {page} 页') url = f'https://we.51job.com/api/job/search-pc?api_key=51job×tamp={int(time.time())}&keyword={parse.quote(key)}&searchType=2&function=&industry=&jobArea=000000&jobArea2=&landmark=&metro=&salary=&workYear=°ree=&companyType=&companySize=&jobType=&issueDate=&sortType=0&pageNum=50&requestId=6ad8715396f546e6bedc7f56165573fa&pageSize=20&source=1&accountId=&pageCode=sou%7Csou%7Csoulb' get_page(url) time.sleep(random.randint(2, 6)) data_df = pd.read_csv(file_name, header=None, names=['职位名称', '薪资', '工作地点', '发布时间', '公司名称', '经营范围', '公司性质', '职位福利', '学历要求', '经验要求']) data_df.to_excel(file_name.replace('.csv', '.xlsx'), index=False) os.remove(file_name)怎么解决url返回的内容为空或无效
时间: 2024-04-27 18:21:08 浏览: 15
可以使用异常处理来解决url返回的内容为空或无效的问题,可以在get_page函数中使用try-except语句来捕获异常,如果出现异常则打印错误信息并跳过该url的抓取,例如:
```
def get_page(url):
try:
response = requests.get(url)
if response.status_code == 200:
# 解析网页内容并保存数据
...
else:
print(f'请求 {url} 失败,状态码为 {response.status_code}')
except Exception as e:
print(f'请求 {url} 出现异常,错误信息为 {e}')
```
这样即使出现url返回的内容为空或无效的情况,程序也不会因为抛出异常而中断,而是会继续抓取其他url。
相关问题
python if __name__ == '__main__':
`if __name__ == '__main__':` 是Python中的一个常见用法,用于判断当前模块是否作为主程序运行。当一个Python文件被直接运行时,`__name__`的值为`'__main__'`,而当它作为模块被导入时,`__name__`的值为模块的名称。
这个用法通常用于将一些在模块作为主程序时需要执行的代码与在模块被导入时不需要执行的代码区分开来。在`if __name__ == '__main__':`下面的代码块只有在当前模块作为主程序运行时才会被执行,而在模块被导入时不会被执行。
下面是一个示例:
```python
def main():
# 主程序代码
print("This is the main program.")
if __name__ == '__main__':
main()
```
在上面的示例中,`main()`函数是主程序的入口点。当当前模块作为主程序运行时,`main()`函数会被调用并执行打印语句。而当模块被导入时,`main()`函数不会被执行。
if __name__=='__main__':.
当我们在Python脚本中使用 `if __name__=='__main__':` 时,它的作用是检查当前脚本是否作为主程序直接运行,而不是作为模块被导入到其他脚本中。这样做的目的是可以让一部分代码只在脚本作为主程序运行时执行,而在被导入时不执行。
当脚本被直接运行时,`__name__` 变量的值会被设置为 `__main__`,因此 `if __name__=='__main__':` 条件会为真,其中的代码会被执行。
如果脚本是作为模块被导入到其他脚本中,`__name__` 变量的值会被设置为模块的名称,而不是 `__main__`,因此 `if __name__=='__main__':` 条件会为假,其中的代码不会被执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Python中if __name__ == ‘__main__‘:的作用和原理](https://blog.csdn.net/heqiang525/article/details/89879056)[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* [if __name__ == '__main__' 如何正确理解?](https://blog.csdn.net/zhusongziye/article/details/79505803)[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 ]