import aiohttp import asyncio from fake_useragent import UserAgent from pyquery import PyQuery as pq import time ua = UserAgent(verify_ssl=False, path='D:/Pycharm/fake_useragent.json') lists = [] start = time.time() def ua_random(): headers = { 'use_agent' : ua.random } return headers async def scrape_text(url): async with aiohttp.ClientSession(headers=ua_random()) as session: async with session.get(url) as response: result = await response.text() await session.close() return result async def scrap_url(html): doc = pq(html) links = doc('.clearfix li a') for link in links.items(): lists.append('https://pic.netbian.com' + link.attr('href')) async def scrap_index(page): url = f'https://pic.netbian.com/4kmeinv/index_{page}.html' html = await scrape_text(url) await scrap_url(html) async def main(): scrap_index_tasks = [asyncio.ensure_future(scrap_index(page)) for page in range(2, 10)] await asyncio.gather(*scrap_index_tasks) print(lists) if name == 'main': loop = asyncio.get_event_loop() loop.run_until_complete(main()) print('总用时:', time.time()-start)出现了init() got an unexpected keyword argument 'path'错误
时间: 2024-04-27 14:25:21 浏览: 215
这个错误通常表示在创建UserAgent对象时,使用了一个不支持的参数。从错误信息看,可能是fake_useragent库的UserAgent类不支持传入path参数。
请检查你在创建UserAgent对象时传入的参数,特别是参数名称是否正确拼写。如果你确定参数名称正确,那么可能是fake_useragent库的版本不支持该参数,需要升级到最新版本。如果你需要更具体的帮助,请提供更多的上下文和代码。
相关问题
import aiohttp import asyncio from fake_useragent import UserAgent from pyquery import PyQuery as pq import time ua = UserAgent(verify_ssl=False, path='D:/Pycharm/fake_useragent.json') lists = [] start = time.time() def ua_random(): headers = { 'use_agent' : ua.random } return headers async def scrape_text(url): async with aiohttp.ClientSession(headers=ua_random()) as session: async with session.get(url) as response: result = await response.text() await session.close() return result async def scrap_url(html): doc = pq(html) links = doc('.clearfix li a') for link in links.items(): lists.append('https://pic.netbian.com' + link.attr('href')) async def scrap_index(page): url = f'https://pic.netbian.com/4kmeinv/index_{page}.html' html = await scrape_text(url) await scrap_url(html) async def main(): scrap_index_tasks = [asyncio.ensure_future(scrap_index(page)) for page in range(2, 10)] await asyncio.gather(*scrap_index_tasks) print(lists) if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main()) print('总用时:', time.time()-start)
这段代码是一个使用异步IO库aiohttp和asyncio实现的爬虫程序,爬取了网站https://pic.netbian.com/4kmeinv/上的内容,将所有图片的链接保存到了一个名为lists的列表中。
具体来说,程序使用fake_useragent库生成一个随机的User-Agent头部,然后使用aiohttp库的ClientSession类和get方法请求网页,获取到响应后,使用pyquery库解析网页内容,获取所有图片链接,并将链接拼接成完整的URL,保存到lists列表中。程序使用asyncio.gather方法并发执行多个任务,提高了爬取的效率。
不过,需要注意的是,这段代码爬取的网站可能存在反爬机制,使用此代码做爬虫可能会导致IP被封禁。同时,爬取的内容可能存在版权问题,请务必遵守相关法律法规。
TypeError: FakeUserAgent.__init__() got an unexpected keyword argument 'verify_ssl'
根据提供的引用内容,出现TypeError: FakeUserAgent.__init__() got an unexpected keyword argument 'verify_ssl'的错误是因为FakeUserAgent的初始化函数__init__()不接受名为'verify_ssl'的关键字参数。解决方法是将'verify_ssl'改为合适的参数或删除该参数。
以下是一个解决该错误的示例代码:
```python
from fake_useragent import UserAgent
# 创建UserAgent对象时不传递'verify_ssl'参数
ua = UserAgent()
```
在上述代码中,我们创建了一个UserAgent对象,而不传递'verify_ssl'参数。这样就可以避免TypeError错误。
阅读全文